1

我一直在使用单词边界来查找字符串中的确切单词,但刚刚了解到它们忽略了非单词字符。

因此,当我在字符串“height (in stories)”中查找“height”时,我得到了我期望的结果:

p = re.compile(r'\b%s\b' % 'height')
p.search('height (in stories)') # match

但是,当我在字符串“height (in stories)”中查找“height (in stories)”时,我找不到匹配项:

p = re.compile(r'\b%s\b' % 'height (in stories)')
p.search('height (in stories)') # no match

如何识别括号?

4

3 回答 3

3

有两个问题。

  1. 您需要使用 re.escape(text)创建一个匹配字符串的正则表达式text
  2. 括号和字符串结尾之间没有单词边界。
于 2012-05-10T17:55:29.483 回答
1

p = re.compile(r'\bheight \(in stories\)')

于 2012-05-10T17:56:29.447 回答
0

使用正则表达式时,您应该阅读它们的语法

和字符在正则表达式中具有特殊含义()如果要从字面上匹配字符,则需要对其进行转义。就像点....

考虑使用re.escape.

于 2012-05-10T17:57:55.220 回答