繁体   English   中英

正则表达式获取所有出现的模式,后跟逗号分隔字符串中的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM