регулярное выражение python

77
9

Я пытаюсь сопоставить одну цитату ниже:

s= "name:'abc','hello'"

но похоже, что поведение match/findall отличается:

re.match("\B'\w+'\B", s)   # ===> return None

re.findall("\B'\w+'\B", s) #===> RETURN ['abc', 'hello']

на самом деле это вызвано одиночными кавычками в строке, кто-нибудь знает, что происходит?

Я использую py2.7.8 в win7.

спросил(а) 2021-01-25T15:50:50+03:00 4 месяца, 4 недели назад
1
Решение
125

См. Https://docs.python.org/2/library/re.html#search-vs-match. "Python предлагает две различные примитивные операции, основанные на регулярных выражениях: re.match() проверяет соответствие только на начало строки, в то время как re.search() проверяет соответствие в любом месте строки (это то, что по умолчанию делает Perl). "

Вы используете re.match(); если вы переключитесь на re.search(), вы получите поведение, которое ожидаете.

ответил(а) 2021-01-25T15:50:50+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема