2012-04-09 2 views
0

Есть ли ошибка в способе написания python?. ' или '\ b'? Я не уверен, почему это дает разные результаты.Python regex border

import re 

regex1 = r'\.?\b' 
print bool(re.match(regex1, '.')) 

regex2 = r'a?\b' 
print bool(re.match(regex2, 'a')) 

Выход:

False 

True 

ответ

4

\b, граница слова, спички между символами слов и элементов без слов. Таким образом, он будет соответствовать символу слова, например a, и концу строки, но не между символом без слова, как . и концом строки.

0

Как geekosaur отметил \b всего лишь короткий способ написания

(?:(?<=\w)(?!\w)|(?<!\w)(?=\w)) 

В вашем случае вы можете использовать

(?!\w) 

или

(?!\S) 

вместо \b.