Python正则表达式返回完整结果

3
我该如何从Python正则表达式中获取匹配的内容?
re.match("^\\\w*", "/welcome")

所有Python返回的都是有效匹配;但我想要整个结果返回;我该怎么做?


1
这个表达式应该返回 None。正斜杠和反斜杠不是一样的。 - Tim Pietzcker
5个回答

3
只需使用re.findall函数即可。
>>> re.findall("a+", 'sdaaddaa')
['aa', 'aa']

我尝试过了,但没有返回有效结果(我使用RegexBuddy进行验证)。 - nobody
@nobody:那是因为该模式与该字符串不匹配。 - Ignacio Vazquez-Abrams
@Roman Bodnarchuk解释了它; 我把它反过来了,感谢findall。 - nobody

0
你可以使用一个组。
res = re.search("^(\\\w*)", "/welcome")
if res:
    res.group(1);

0

调用返回的匹配对象的group()方法而不带任何参数,将返回字符串的匹配部分。


0
正则表达式"^\\\w*"将匹配以反斜杠开头,后跟0个或多个w字符的字符串。您要搜索的字符串以正斜杠开头,因此您的正则表达式不会匹配。这就是为什么您没有得到任何返回结果的原因。
请注意,如果您打印出字符串,则您的正则表达式包含\\w\\表示匹配一个反斜杠,然后w表示匹配一个字面上的w。如果您想要一个反斜杠后跟一个单词字符,那么您需要转义第一个反斜杠,最简单的方法是使用原始字符串r"^\\\w*"将匹配"\\welcome"但仍然不匹配"/welcome"

0
请注意,您的 "^" 表示您的字符串必须从行首开始。RegexBuddy 默认情况下不会告诉您这一点。 也许您想告诉我们您究竟想要查找什么?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接