2012-08-29 64 views
1

我想匹配一些括号内的字符串的字符串。我的字符串可能有一些撇号。我正在使用以下模式进行匹配,但这不是拾取字符串,我不明白为什么 - 任何想法?问题匹配包含撇号

pattern = re.compile('<([\w\s\']+)>', re.IGNORECASE) 

例如,<Let's rock!>会产生Let's rock!

回答

5

您没有撇号的问题,你有一个感叹号问题。感叹号既不是字(\w)也不空白(\s),也不是一个撇号。所以如果你想允许的话,你应该在你的角色类中加入!

+0

确定我以为\ W将匹配! - 谢谢! – tiguero

+0

'\ w'只有字母,数字和下划线(尽管这取决于你的语言和版本,“字母”和“数字”可能意味着这些词的解释ASCII或Unicode的解释) – hobbs

2

你能不能逃脱一个简单的.,例如,'<(.+)>'

而且,它通常更容易,如果你,如果你需要在里面嵌入单引号,例如,"<([\w\s']+)>"不使用的字符串单引号。