精确的字符串与括号匹配

时间:2012-05-10 17:52:22

标签: python regex

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

因此,当我在字符串“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

如何识别括号?

3 个答案:

答案 0 :(得分:3)

有两个问题。

  1. 您需要使用re.escape(text)创建与字符串text匹配的正则表达式。
  2. 括号与字符串末尾之间没有字边界。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

()字符在正则表达式中具有特殊含义,如果要按字面匹配字符,则需要转义它们。就像点. ...

一样

考虑使用re.escape