\ b正则表达式包含句号

时间:2015-09-21 18:36:05

标签: python regex python-3.x

我正在尝试使用正则表达式来返回特定单词的实例,而只返回该单词。例如,不应包括作为另一个单词的子串的单词。

到目前为止,这是我在Python 3.x中的正则表达式。

re.search(r'\bJohnn(y\'s|y)[.]?\b', string)

但是,由于.不会将\w视为单词字符,因此当我不希望它们包含.Johnny时,实例字符串会匹配。

澄清,字符串正常后的时间段。

我是否还要将.作为\w列表的一部分加入?

2 个答案:

答案 0 :(得分:1)

你可以使用负面看法断言来避免这种情况

re.search(r'\b(?<!\.)Johnn(y\'s|y)[.]?\b', string)

<强> Regex explanation here

Regular expression visualization

答案 1 :(得分:1)

反过来说。检查它是否前面没有&#34; .&#34; \w (?<![.])(?!\w)

后跟re.search(r'(?<![.\w])Johnny(?:\'s)?[.]?(?![.\w])', string)

正则表达式:

sf.Contact.metadata()