使用Python中的正则表达式提取多个值

时间:2018-02-21 13:23:00

标签: python regex

我想在python

中使用正则表达式提取多个值

字符串为id : NAA1, priority : 4, location : WJQ, director : 13, text : HelloWorld

" NAA1,4,WJQ,13,HelloWorld"是我想要的价值。

第一次,我尝试了那样

import re
msg = "id : NAA1, priority : 4, location : WJQ, director : 13, text : HelloWorld"
_id = re.search('id : (.*?),', msg)

但我希望所有的价值只使用一次重新模式匹配。

5 个答案:

答案 0 :(得分:1)

使用:

import re
msg = "id : NAA1, priority : 4, location : WJQ, director : 13, text : HelloWorld"
print(re.findall(r' : ([^,]*)', msg))

输出:

['NAA1', '4', 'WJQ', '13', 'HelloWorld']

答案 1 :(得分:1)

正则表达式发现每个字符串都是“:”,直到找到空格。为了对整个字符串起作用,应在其末尾添加一个空格。

import re
string = string + ' '
result = re.findall(': (.*?) ', string)
print(' '.join(result))

答案 2 :(得分:1)

UILabel

答案 3 :(得分:1)

不使用正则表达式:

a = "id : NAA1, priority : 4, location : WJQ, director : 13, text : HelloWorld"
print [i.split(":")[1].strip() for i in a.split(",")]

<强>输出:

['NAA1', '4', 'WJQ', '13', 'HelloWorld']

答案 4 :(得分:0)

可以在不使用正则表达式的情况下完成:

msg = "id : NAA1, priority : 4, location : WJQ, director : 13, text : HelloWorld"
extracted_values = [value.split()[-1] for value in msg.split(", ")]
print(", ".join(extracted_values))

输出:

  

NAA1,4,WJQ,13,HelloWorld