Является ли смысл этого регулярного выражения: (\d+).*?
- группировать набор чисел, а затем брать все, что приходит после (только одно его появление максимум, за исключением новой строки)?Значение regex Python
Есть ли разница в: (\d+) and [\d]+
?
Является ли смысл этого регулярного выражения: (\d+).*?
- группировать набор чисел, а затем брать все, что приходит после (только одно его появление максимум, за исключением новой строки)?Значение regex Python
Есть ли разница в: (\d+) and [\d]+
?
Возьмите столько цифр, сколько возможно (по крайней мере 1
), затем принимают наименьшее количество символов, насколько это возможно (за исключением символа новой строки). Нежелательный классификатор (?
) действительно не помогает, если у вас нет остальной части вашего шаблона, следуя за ним, иначе он будет как можно меньше соответствовать, в этом случае всегда 0
.
>>> import re
>>> re.match(r'(\d+).*?', '123').group()
'123'
>>> re.match(r'(\d+).*?', '123abc').group()
'123'
Разница между (\d+)
и [\d]+
является тот факт, что бывшие группы и последний не делает. ([\d]+)
будет, однако, эквивалентным.
>>> re.match(r'(\d+)', '123abc').groups()
('123',)
>>> re.match(r'[\d]+', '123abc').groups()
()
это выражение: '(\ d +). *? (\ S *)', это соответствует по крайней мере одному событию любого небелого символа (в группе), поэтому, если у меня есть «5000 шаров», '5000 'будет в group1 и' [whitespace] ball' в группе (2)? –
@JamesHallen попробуйте это для себя – jamylak
@JamesHallen Почему бы вам не попробовать? Он дает '('5000', '')'. '. *?' соответствует пустой строке, потому что не является жадным, а '\ S *' соответствует пустой строке, потому что следующий символ - это пробел. –
(\d)+ One or more occurance of digits,
.* followed by any characters,
? lazy operator i.e. return the minimum match.
Может кто-нибудь, пожалуйста, дешифровать этот шаблон? \ d + (?: \. \ d *)? – Tengis
Группа 1 будет по меньшей мере одним номером, а group0 будет содержать группу1 и, возможно, другие символы, но необязательно.
отредактировал для ответа на отредактированный вопрос: AFAIK не должно быть разницы в сопоставлении между этими 2, кроме группировки.
первая группа, вторая - нет. – njzk2