需要在python中使用此字符串的正则表达式吗?

时间:2018-08-20 18:05:24

标签: python regex

我为特定字符串编写了正则表达式,如下所述。匹配组(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

2 个答案:

答案 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