Python 如何创建匹配的正则表达式`change://problem/59689726`及`change://1234567`
我正在尝试正则表达式匹配字符串Python 如何创建匹配的正则表达式`change://problem/59689726`及`change://1234567`,python,regex,Python,Regex,我正在尝试正则表达式匹配字符串change://problem/59689726和change://1234567但是下面的代码只匹配前者,我如何更改正则表达式以匹配两者?如何使问题/可选 输入代码: import re out = ''' <change://problem/59689726> This is a test1 change://1234567 This is a test2 [Problem] This is problem desription ''' m = r
change://problem/59689726
和change://1234567
但是下面的代码只匹配前者,我如何更改正则表达式以匹配两者?如何使问题/
可选
输入代码:
import re
out = '''
<change://problem/59689726> This is a test1
change://1234567 This is a test2
[Problem]
This is problem desription
'''
m = re.findall("[\S]*(?:change:\/\/problem\/(\d{8,8}))", out.split('[Problem]')[0])
if m:
for radar in set(m):
print radar
CURRENT OUTPUT:-
59689726
1234567如果您需要在
change://problem/
或更改://
您可以使用
re.findall("change://(?:problem/)?(\d+)", out.split('[Problem]')[0])
请参阅和
模式匹配:
-文本字符串change://
-1或0次出现(?:problem/)?
子字符串问题/
-第1组(由(\d+)
返回的内容):1+位数re.findall
1234567
是7位数字。数字长度未知吗?我在哪里可以理解/阅读(?:problem/)?
?我们为什么需要?:
@user3682248和。
re.findall("change://(?:problem/)?(\d+)", out.split('[Problem]')[0])