下面是我需要使用re.match
匹配的正则表达式。我首先需要匹配“susa”并忽略任何高达“@”符号的内容(不包括它),然后捕获它之后的所有内容。但是,当我尝试使用re.search
获取输出时,它不匹配。为什么我得不到想要的输出?re.match
是否与输出匹配?(我无法检查,因为它只提供内存位置)。谢谢。你知道吗
import re
output = 'susa ssh://user@internal.website.ide.company.uk/du33/abo33/ohs231/stk/projects/project1/'
url_match = re.match("\s*susa\s+[^(/.+?(?=@)/)]+([^ ]+)", output)
Result = re.search("\s*susa\s+[^(/.+?(?=@)/)]+([^ ]+)", output)
if Result:
print Result.groups()
In [29]: runfile('/home/user/Desktop/python_practise/match_urls.py', wdir='/home/user/Desktop/python_practise')
('//user@internal.website.ide.company.uk/du33/abo33/ohs231/stk/projects/project1/',)
你可以用
详细信息:
\s*
-0+空格susa
-asusa
子串\s
-a空白[^@]+
-1+除@
以外的字符([^...]
是一个negated character class,它匹配除类中指定的字符以外的任何字符)(\S+)
-捕获组1:一个或多个非空白字符。你知道吗要获取组1中的值,请使用
url_match.group(1)
。你知道吗参见Python demo:
相关问题 更多 >
编程相关推荐