我想在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)
但我希望所有的价值只使用一次重新模式匹配。
答案 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