![](/img/trans.png)
[英]Python Regex match all occurrences of decimal pattern followed by another pattern
[英]Regex to get all occurrences of a pattern followed by a value in a comma separate string
这是在python中
输入字符串:
Str = 'Y=DAT,X=ZANG,FU=_COG-GAB-CANE-,FU=FARE,T=TART,RO=TOP,FU=@-_MAP.com-,Z=TRY'
预期输出
'FU=_COG-GAB-CANE_,FU=FARE,FU=@-_MAP.com_'
这里“ FU= ”是我们正在寻找的出现以及跟随FU=的值
在逗号分隔的字符串中返回所有出现的FU= (带有FU=的关联值),它们可以出现在字符串中的任何位置,并且允许使用特殊字符。
这是一种方法。
>>> import re
>>> str_ = 'Y=DAT,X=ZANG,FU=FAT,T=TART,FU=GEM,RO=TOP,FU=MAP,Z=TRY'
>>> re.findall.__doc__[:58]
'Return a list of all non-overlapping matches in the string'
>>> re.findall(r'FU=\w+', str_)
['FU=FAT', 'FU=GEM', 'FU=MAP']
>>> ','.join(re.findall(r'FU=\w+', str_))
'FU=FAT,FU=GEM,FU=MAP'
搞定了
Python代码
进口重新
str_ = 'Y=DAT,X=ZANG,FU=_COG-GAB-CANE-,FU=FARE,T=TART,RO=TOP,FU=@-_MAP.com-,Z=TRY'
str2='FU='+',FU='.join(re.findall(r'FU=(.*?),', str_))
打印(str2)
给出所需的输出:
'FU=_COG-GAB-CANE-,FU=FARE,FU=@-_MAP.com-'
成功地给了我所有出现的FU=后跟值,而不管特殊字符的顺序和数量。
虽然有点不干净,因为我第一次手动添加 FU= 。 请建议是否有更清洁的方法? ,但是是的,它完成了工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.