RegEx: Python (findall). Порядок элементов в операторе OR, приводящий к разным выводамPython

Программы на Python
Ответить
Anonymous
 RegEx: Python (findall). Порядок элементов в операторе OR, приводящий к разным выводам

Сообщение Anonymous »

Я пытаюсь разобраться в регулярных выражениях и экспериментирую с некоторыми примерами, пытаясь увидеть, к чему это приведет. Я пытаюсь понять, как порядок элементов в OR (|) влияет на вывод следующего кода

Код: Выделить всё

import re
uni = "University of Sheffield"
first = re.findall(".*U|S.*U|S",uni)
second = re.findall(".*U|S.*S|U",uni)
third = re.findall(".*S|U.*S|U",uni)

если я напечатаю первую, вторую и третью переменную, я получу следующее

Код: Выделить всё

first -> ['U', 'S']
second -> ['U']
third -> ['University of S']
Я не понимаю, почему результат каждого из них такой, какой он есть. Я предполагал, что это должно быть то же самое, и это должно быть ['Университет S']. Мне было интересно, поможет ли мне кто-нибудь понять, почему в каждом из этих трех случаев это интерпретируется по-разному?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-differen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»