2011-07-04 63 views
3

如何从python正则表达式中获得匹配的内容?python正则表达式返回完整结果

re.match("^\\\w*", "/welcome") 

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

+1

该表达式应该返回'None'。斜杠和反斜杠不一样。 –

回答

3

只需使用re.findall函数。

>>> re.findall("a+", 'sdaaddaa') 
['aa', 'aa'] 
+0

我试过了,但没有任何有效的返回(我正在使用RegexBuddy进行验证) – nobody

+0

@nobody:这是因为该模式与该字符串不匹配。 –

+0

@Roman Bodnarchuk解释它;有它逆转,并感谢findall – nobody

0

您可以使用一个组。

res = re.search("^(\\\w*)", "/welcome") 
if res: 
    res.group(1); 
0

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

+0

您的解决方案也很好 – nobody

0

正则表达式"^\\\w*"将匹配以反斜杠开头的字符串,后跟0或更多的w字符。您搜索的字符串以正斜杠开头,因此您的正则表达式不匹配。这就是为什么你没有得到任何回报。

请注意,你的正则表达式,如果你打印出来的字符串包含\\w\\表示匹配单个反斜杠,则w的含义与文字w匹配。如果你想要一个反斜杠后跟一个单词字符,那么你将需要转义第一个反斜杠,最简单的方法是使用原始字符串r"^\\\w*"将匹配"\\welcome",但仍然不匹配"/welcome"

0

请注意,您是“^”,表示您的字符串必须从行首开始。 RegexBuddy默认不会告诉你。 也许你想告诉我们你到底在找什么?

相关问题