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?
精彩评论