开发者

python regular expressions to return complete result

How can I get what was matched from a python regular expression?

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

开发者_开发技巧All python returns is a valid match; but I want the entire result returned; how do I do that?


Just use re.findall function.

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


You could use a group.

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


Calling the group() method of the returned match object without any arguments will return the matched portion of the string.


The regular expression "^\\\w*" will match a string beginning with a backslash followed by 0 or more w characters. The string you are searching begins with a forward slash so your regex won't match. That's why you aren't getting anything back.

Note that your regex, if you printed out the string contains \\w. The \\ means match a single backslash then the w means match a literal w. If you want a backslash followed by a word character then you will need to escape the first backslash and the easiest way would be to use a raw string r"^\\\w*" would match "\\welcome" but still not match "/welcome".


Notice that you're "^" says you're string has to start at the beginning of a line. RegexBuddy doesn't tell that to you by default. Maybe you want to tell us what exactly are you trying to find?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜