txt = 'is worth 12$' pattern = re.compile('12$') match = pattern.search(txt) if match != None: print('ys') else: print('no')
Он печатает no. Я хочу знать, почему строка '12$' не соответствует.
no
'12$'
Если вы хотите использовать какой-либо из этих символов в качестве литерала в регулярном выражении, вам нужно экранировать их с помощью обратного слэша sh. Если вы хотите сопоставить 1 + 1 = 2, правильное регулярное выражение будет 1 + 1 = 2. В противном случае знак плюс имеет особое значение.
Это должно быть:
pattern=re.compile('12\$')
$ - это специальный символ в регулярном выражении. Вы должны избежать этого так:
$
import re txt='is worth 12$' pattern=re.compile('12\$') match=pattern.search(txt) if match!=None: print('ys') else: print('no')