Python regex单词边界+;引用
下面的表达式应该以不区分大小写的方式匹配整个给定单词。引号是单词的一部分,所以我检查单词的前面或后面是否有引号。例如,单词“foo”不应与文本“foo’s”匹配 这次应该找到“foo”,但没有找到,因为单词前面有引号。Python regex单词边界+;引用,python,regex,Python,Regex,下面的表达式应该以不区分大小写的方式匹配整个给定单词。引号是单词的一部分,所以我检查单词的前面或后面是否有引号。例如,单词“foo”不应与文本“foo’s”匹配 这次应该找到“foo”,但没有找到,因为单词前面有引号。((?使用regex(?:) ((?<![a-z\'\"])|(?<=\'{3}))foo((?![a-z\'\"])|(?=\'{3})) pattern=re.compile(r'(?:(?不使用前瞻: >>> pat = r'([\'\"]{3
((?使用regex(?:)
((?<![a-z\'\"])|(?<=\'{3}))foo((?![a-z\'\"])|(?=\'{3}))
pattern=re.compile(r'(?:(?不使用前瞻:
>>> pat = r'([\'\"]{3}|\b)foo\1'
>>> m = re.search(pat, 'My """foo""" is rich')
>>> re.search(pat, 'My """foo""" is rich').groups()
('"""',)
>>> re.search(pat, "My '''foo''' is rich").groups()
("'''",)
>>> re.search(pat, 'My """foo"" is rich').groups()
('',)
>>> re.search(pat, 'My """foo\'\'\' is rich').groups()
('',)
XD,我的正则表达式应该找到单词,如果它在三重引号中,但它没有。
((?<![a-z\'\"])|(?<=\'{3}))foo((?![a-z\'\"])|(?=\'{3}))
pattern = re.compile(r'(?:(?<=\'\'\')|(?<!\'))\b%s\b(?:(?=\'\'\')|(?!\'))' % word,flags=re.IGNORECASE)
>>> pat = r'([\'\"]{3}|\b)foo\1'
>>> m = re.search(pat, 'My """foo""" is rich')
>>> re.search(pat, 'My """foo""" is rich').groups()
('"""',)
>>> re.search(pat, "My '''foo''' is rich").groups()
("'''",)
>>> re.search(pat, 'My """foo"" is rich').groups()
('',)
>>> re.search(pat, 'My """foo\'\'\' is rich').groups()
('',)