Я пытаюсь разобрать текстовый документ с данными в следующем формате: 24036 -977
. Мне нужно разделить числа на отдельные значения, и то, как я это сделал, - это следующие шаги.Python Regex Behavior
values = re.search("(.*?)\s(.*)")
x = values.group(1)
y = values.gropu(2)
Это делает работу, но мне было любопытно, почему использование (. *?) Во второй группе вызывает регулярное выражение на провал? Я тестировал его в онлайн-тесте регулярного выражения (https://regex101.com/r/bM2nK1/1) и добавлял? в результате вторая группа ничего не возвращает. Теперь, насколько я знаю, .*?
означает использовать любое значение неограниченное количество раз, насколько это возможно, и .*
- это только жадная версия этого. Что меня смущает, почему не жадная версия .*?
берет это определение, чтобы ничего не понимать?
[обязательный для чтения] (http://www.rexegg.com/regex-quantifiers.html#lazy_solution). –
@stribizhev также http://programmers.stackexchange.com/questions/113237/when-you-should-not-use-regular-expressions – Scironic
@JustinWang не забудьте отметить ответ, наиболее подходящий для вашей проблемы, как правильный. – Scironic