Python 正则表达式零次或多次出现

Posted

技术标签:

【中文标题】Python 正则表达式零次或多次出现【英文标题】:Python regular expression zero or more occurrences 【发布时间】:2014-05-31 12:16:26 【问题描述】:

I can\'?t (.*)

我的正则表达式是上述形式。但是如果给它的字符串在t 之后结束,我的匹配对象不匹配

re.compile(r'I can\'?t (.*)').match(str)

如果 str = "I cant",它不起作用。但是如果 str = "I can't use",它可以工作(匹配返回一些东西)。

【问题讨论】:

【参考方案1】:

为此,您可以这样做:

re.compile(r'I can\'?t.*').match(str)

这将匹配 "I can't" 和后面的一些其他文本或仅匹配 "I can't"

【讨论】:

这里的替换无关紧要:.* 将始终匹配,即使它是一个空字符串。通过将其作为首选,您可以确保永远不会使用 $【参考方案2】:

您在t 之后留下了一个必填空格。删除它,你会没事的:

I can\'?t(.*)

另请注意,括号仅在您想使用第一个捕获组的内容时才有用,否则您可以安全地删除它们。

【讨论】:

@laike9m:很高兴我能帮上忙。如果答案完全解决了您的问题,请记住将其标记为已接受以关闭问题,然后您就可以开始了。 @laike9m: Wooops,没错 :) 谢谢你的支持,我猜!

以上是关于Python 正则表达式零次或多次出现的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式学习整理

python 正则表达式

JS正则表达式从入门到入土—— 量词

scala正则表达式

正则表达式

Python正则总结