如何使用正则表达式获得多个匹配?

时间:2018-03-15 17:27:13

标签: regex

我正在尝试使用以[&开头的字符串获取所有匹配项,并以]结尾(例如[&Prueba])。

到目前为止,我有这个表达\[&.*] 问题是,如果我有两个或更多匹配,它认为它们是一个,我的意思是例如

dsdd [&xD]s wpxxxxx.php [&dsdd]

正则表达式会抛出一个匹配项:[&xD]s wpxxxxx.php [&dsdd]我希望得到两个结果:[&xD][&dsdd]

我怎么能得到它?我尝试了几件事,但我还是没有得到它。

谢谢和问候!

1 个答案:

答案 0 :(得分:1)

你会想做这样的事情:

\[&[^\]]+\]

这是python中的一个例子:

import re

data = "dsdd [&xD]s wpxxxxx.php [&dsdd]"
results = re.findall("\[&[^\]]+\]", data)
print (results)

['[&xD]', '[&dsdd]']

关键部分是由方括号包围的负字符类(第一个带有&符号)。匹配[,所有非],最后匹配

这是一个很好的网站,可以玩这样的东西:https://regex101.com/