В чем разница между '{m}' и '{m, n}?' в http://docs.python.org/library/re.html говорится: «{m, n}?» соответствует номерам в диапазоне от m до n раз, но это не жадный поиск. Поэтому, если его не жадный поиск не будет соответствовать только м, независимо от того, что?регулярное выражение python
ответ
{m,n}?
будет предпочтительно соответствовать только m
повторениям, но он будет расширяться по мере необходимости до n
повторений, если это необходимо для более длительного совпадения.
^x{2}y$
Сравнить и ^x{2,4}?y$
:
Бывший потерпит неудачу на xxxy
в то время как последний будет соответствовать.
Резюмируя:
x{m}
: матч x
точноm
раз.
x{m,n}
: Попробуйте матч x
n
раз, но если это вызывает общий матч потерпеть неудачу, вернуть по мере необходимости, но матч по крайней мере m
раз (жадный квантор).
x{m,n}?
: Попробуйте матч x
m
раз, но если это вызывает общий матч на провал, расширяться по мере необходимости, но матч в большинстве n
раз (ленивый кванторных).
Это проще всего увидеть на примере с помощью двух соответствующих групп:
>>> re.match(r'(x{1,3}?)(.*)', 'xxxxx').groups()
('x', 'xxxx')
>>> re.match(r'(x{1,3})(.*)', 'xxxxx').groups()
('xxx', 'xx')
Другими словами, {п, т} и {п, т}? оба могут соответствовать точно таким же вещам; то, что он изменил, - это то, где группируются, когда есть несколько способов совпадения.
- 1. регулярное выражение is_fraction: Python: регулярное выражение
- 2. Python регулярное выражение суб
- 3. Python регулярное выражение помощь
- 4. Python регулярное выражение?
- 5. Python Регулярное выражение Соответствие: ## ##
- 6. Python. Регулярное выражение
- 7. Python регулярное выражение синтаксический
- 8. python Регулярное выражение
- 9. Python авансового регулярное выражение
- 10. Python регулярное выражение
- 11. Регулярное выражение в Python
- 12. Python регулярное выражение
- 13. Регулярное выражение и Python
- 14. Регулярное выражение в Python
- 15. Регулярное выражение python re.sub
- 16. Python string.replace регулярное выражение
- 17. Python регулярное выражение проблемы
- 18. Python регулярное выражение с "?"
- 19. Python - несовпадающих регулярное выражение
- 20. Сделать регулярное выражение Python
- 21. Регулярное выражение Python findall *
- 22. Python регулярное выражение несогласованность
- 23. django/python - регулярное выражение
- 24. python регулярное выражение грамматика
- 25. Python регулярное выражение
- 26. Python регулярное выражение для
- 27. Python Регулярное выражение
- 28. Python регулярное выражение нарезка
- 29. Python регулярное выражение путаница
- 30. Python Регулярное выражение Вопрос
Я не уверен в регулярных выражениях, пишущих в стиле Python, но большинство ароматов регулярных выражений (и большинство языков программирования в этом отношении) имеют несколько функционально идентичных конструкций. Это не одно, но вы не должны удивляться, если найдете их. –
@chris: при сомнении легко сравнить систему регулярных выражений с нескольких языков с помощью онлайн-инструментов: PHP и javascript получили http://regex.larsolavtorvik.com/, в то время как python получил http://ksamuel.pythonanywhere.com. здесь вы можете легко увидеть, что это не новая конструкция. –