i_know_this = "11.22"
我真的对正则表达式不满意。我正在寻找以"11.22"
开头但字符串中不完整的版本号。此字符串的示例为:
“ bla bla bla bla bla 73.12。bla bla bla 11.22.33.444 bla”
在此字符串中,我想提取11.22.33.444
并绑定到变量:
z = "11.22.33.444"
另一个例子:
"bla bla bla bla 13.762. bla bla bla 11.22.01.4. bla"
,在这种情况下,我想找到11.22.01.4
(没有多余的点)并将其链接到变量:
z = "11.22.01.4"
答案 0 :(得分:0)
您可以使用
import re
R=re.compile(r'(11\.22\.[0-9]+\.[0-9]+)')
S=R.search(yourstring) # I tried .match(); but that didn't work
S.group()
答案 1 :(得分:0)
使用re.search()
:
z = re.search( r'[0-9]+(?:\.[0-9]+){3}', s ).group(0)
演示:
>>> import re
>>> s = "bla bla bla bla 73.12. bla bla bla 11.22.33.444 bla"
>>> z = re.search( r'[0-9]+(?:\.[0-9]+){3}', s ).group(0)
>>> print(z)
11.22.33.444
>>> s = "bla bla bla bla 13.762. bla bla bla 11.22.01.4. bla"
>>> z = re.search( r'[0-9]+(?:\.[0-9]+){3}', s ).group(0)
>>> print(z)
11.22.01.4
答案 2 :(得分:0)
使用re.findall()的另一个选项:
import re
a = 'bla bla bla bla 13.762. bla bla bla 11.22.01.4. bla'
b = 'bla bla bla bla 73.12. bla bla bla 11.22.33.444 bla'
r = re.compile(r'(11\.22\.[\d\.]+\d)')
print(r.findall(a))
print(r.findall(b))