我想使用Python正则表达式从以下组织模式行中提取三个尾随标签:
以下代码仅识别最后一个标签,但将其他两个标签放入第一组
import re
m = re.search('(.*)\s*:(.*):$','* TODO [#A] Do something important :Tag1:Tag2:Tag3:')
print(m.group(1))
print(m.group(2))
结果:
我需要更改什么以使Tag1和Tag2也属于第二组?
这*
是贪婪的。因此,.*
将尽可能匹配,并且仍然允许正则表达式的其余部分匹配。要使量词不贪心,您需要?
在第一个捕获组中添加。
import re
s = '* TODO [#A] Do something important :Tag1:Tag2:Tag3:'
m = re.search(r'(.*?)\s*:(.*):$', s)
print "\n".join(m.groups())
您也可以在这里拆分。
import re
s = '* TODO [#A] Do something important :Tag1:Tag2:Tag3:'
m = re.split('\s+:|:$', s)
print "\n".join([m[0], m[1]])
输出
* TODO [#A] Do something important
Tag1:Tag2:Tag3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句