timofmax
Как интерпретировать?
r - сырая строка (не требует экранирований специальных символов вроде бэкслеша и подобных)
' - кавычка, начинающая строку
, - символ запятая в тексте
| - или
via - последовательность символов via в тексте
| - или
- символ из множества символов в тексте
' - кавычка, заканчивающая строку
Каждая часть выбора | является регулярным выражением сама по себе. Например, запятая является простейшим регулярным выражением, обозначающим саму себя. А via является составным регулярным выражением, состоящим из трёх простейших регулярных выражений, обозначающих самих себя.
Квадратные скобки задают неупорядоченное множество символов и образуют регулярное выражение, которое совпадает с любым из символов этого множества. Так как сами квадратные скобки являются специальными символами, то для использования квадратных скобок как неспециальных символов их надо проэкранировать с помощью бэкслеша.
Таким образом можно искать квадратные скобки в тексте
>>> import re
>>>
>>> re.search(r'[abc]', '123 [abc] 456]').group()
'a'
>>>
>>> re.search(r'\[abc\]', '123 [abc] 456]').group()
'[abc]'
>>>
Тут в первом случае ищется один символ из множества a b c, это аналогично выражению a|b|c.
Во втором случае ищется строка из символов, обозначающих самих себя и стоящих именно в такой последовательности.