簡體   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