我为特定字符串编写了正则表达式,如下所述。匹配组(1)包含值。我只需要字符串部分而不是值。
import re
line = "dev_interface_values, 123 23, 8 1"
line2= "my_port_values2, 1234, 81"
m = re.search(r'^\s*(.+), (.*\S)\s*$', line)
print m.group(1)
print m.group(2)
m1 = re.search(r'^\s*(.+), (.*\S)\s*$', line2)
print m1.group(1)
print m1.group(2)
输出:
dev_interface_values, 123 23
8 1
my_port_values2, 1234
81
期望输出为:
m.group(1) -> dev_interface_values
m.group(2) -> 123 23, 8 1
m.group(1) -> my_port_values2
m.group(2) -> 1234, 81
答案 0 :(得分:1)
您只需要使用?
使第一个捕获组变懒:
import re
line = "dev_interface_values, 123 23, 8 1"
line2 = "my_port_values2, 1234, 81"
for i in [line,line2]:
m = re.fullmatch(r'^\s*(.+?), (.*\S)\s*$', i)
print(m.group(1))
print(m.group(2))
答案 1 :(得分:0)
尝试使用此正则表达式(see it in action here):
^(\w+)\,\s*(.*\S)$
字符串1输出:
dev_interface_values
123 23, 8 1
字符串2输出:
my_port_values2
1234, 81