我使用regex101.com#python,这是我的字符串:
正则表达式:
.* src=.(?<Pvar1>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).* dst=.(?<Pvar2>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})
测试字符串:
k=57829.57892gfjhfg.tur90eunn 4538.333.3 user="JHenry" src="10.10.1.21" dst="10.10.20.42" ttubbies="yellow"]
我尝试将此转置为我的代码,但我不知道如何执行此操作。如何在Python中获取var1
和var2
并打印它们?
我试了print(var1)
但没有成功。
答案 0 :(得分:4)
使用group()
返回的Match
对象的re.match
方法访问捕获组。如果使用普通捕获组,则参数为组编号;如果使用命名捕获组,则参数是名称。
str = 'k=57829.57892gfjhfg.tur90eunn 4538.333.3 user="JHenry" src="10.10.1.21" dst="10.10.20.42" ttubbies="yellow"]'
regexp = r'.* src=.(?<Pvar1>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).* dst=.(?<Pvar2>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})'
match = re.match(regexp, str)
pvar1 = match.group('Pvar1')
pvar2 = match.group('Pvar2')
请参阅Match objects的文档。
答案 1 :(得分:0)
我会做这样的事情。
import re
string = 'k=57829.57892gfjhfg.tur90eunn 4538.333.3 user="JHenry" src="10.10.1.21" dst="10.10.20.42" ttubbies="yellow"]'
results = re.match(".* src=.(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).* dst=.(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})", string)
print results.group(1)
print results.group(2)
示例输出:
$ python t.py
10.10.1.21
10.10.20.42