2024-09-28 21:31:05 发布
网友
我有一条短信:
[[Hindi]] [[Madras Talkies]] [[Eros International]] [[A. R. *Rehman]]
我想获得[[]]内的一切
我试过一些正则表达式,比如:
re.search('\[\[.*\]\]$',values) \[\[(\w+\s\w+)\]\](.*)$' \[\[(\w+)\]\]
对他们中的任何一个都没用。有人能告诉我出了什么问题吗?在
下面的regex应该能做到这一点:
\[\[(.*?)\]\]
您需要做的是使通配符*变为惰性,这样它将只匹配w/e字符.匹配,直到我们可以用最后两个括号进行匹配(这不是它真正的工作方式,而是结果)。在
*
.
这个特别的网站可能会为你清除懒惰/贪婪
http://www.regular-expressions.info/repeat.html#greedy
我不匹配一个字符,如果它存在+任何额外的字符,就像你们这里的所有人,我匹配的不是[或](至少1个)在[[]]
$ python2 >>> import re >>> text = '[[Eros International]] [[A. R. *Rehman]]' >>> re.findall('\[\[([^\[\]]+)\]\]', text) ['Eros International', 'A. R. *Rehman'] >>> re.findall('\[\[([^\[\]]+)\]\]', text)[0] 'Eros International' >>> re.findall('\[\[([^\[\]]+)\]\]', text)[1] 'A. R. *Rehman'
您需要非贪婪搜索,因此regex应该是:
如果Python2.7不支持非贪心模式(即.*之后的?),那么您可以只使用.*,但是第三个带有两组双方括号的示例行只匹配一次,捕获的文本将是:
.*
?
使用非贪心匹配,在那条线上会得到两个独立的匹配。在
下面的regex应该能做到这一点:
您需要做的是使通配符
*
变为惰性,这样它将只匹配w/e字符.
匹配,直到我们可以用最后两个括号进行匹配(这不是它真正的工作方式,而是结果)。在这个特别的网站可能会为你清除懒惰/贪婪
http://www.regular-expressions.info/repeat.html#greedy
我不匹配一个字符,如果它存在+任何额外的字符,就像你们这里的所有人,我匹配的不是[或](至少1个)在[[]]
您需要非贪婪搜索,因此regex应该是:
如果Python2.7不支持非贪心模式(即
^{pr2}$.*
之后的?
),那么您可以只使用.*
,但是第三个带有两组双方括号的示例行只匹配一次,捕获的文本将是:使用非贪心匹配,在那条线上会得到两个独立的匹配。在
相关问题 更多 >
编程相关推荐