почему следующий код не возвращает объект соответствия? - PullRequest
0 голосов
/ 14 февраля 2020
txt = 'is worth 12$'
pattern = re.compile('12$')
match = pattern.search(txt)
if match != None:
    print('ys')
else:
    print('no')

Он печатает no. Я хочу знать, почему строка '12$' не соответствует.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Если вы хотите использовать какой-либо из этих символов в качестве литерала в регулярном выражении, вам нужно экранировать их с помощью обратного слэша sh. Если вы хотите сопоставить 1 + 1 = 2, правильное регулярное выражение будет 1 + 1 = 2. В противном случае знак плюс имеет особое значение.

Это должно быть:

pattern=re.compile('12\$')
0 голосов
/ 14 февраля 2020

$ - это специальный символ в регулярном выражении. Вы должны избежать этого так:

import re
txt='is worth 12$'
pattern=re.compile('12\$')
match=pattern.search(txt)
if match!=None:
    print('ys')
else:
    print('no')
...