簡體   English   中英

使用python正則表達式查找特定字符

[英]Find specific character with python regex

我有一個字符串列表,如下所示:

H PL->01 Tx=000/006 Ph=00/000  DGDD DDDR YDyD GRDD YGR  Dets=     003,003,003,003,003,003,003,003,003,003,003,003,  ports= 255,255,255,255,255,255,255,255,'

我希望能夠提取匹配DGDD DDDR YDyD GRDD YGR (這會改變,但總是有字母D,G,R,Y,y並且它的長度可能會改變)並將其放在沒有像這樣的空格的列表中:

 ['D', 'G', 'D', 'D', 'D', 'D', 'D', 'R', 'Y', 'D', 'y', 'D', 'G', 'R', 'D', 'D', 'Y', 'G', 'R']

如果條件是具有至少三個字符的DGRYy組,那么您可以使用正則表達式來實現該效果,然后將其“展平”到列表后...例如:

import re
from itertools import chain
print list(chain.from_iterable(re.findall('[DGRYy]{3,}', data)))
# ['D', 'G', 'D', 'D', 'D', 'D', 'D', 'R', 'Y', 'D', 'y', 'D', 'G', 'R', 'D', 'D', 'Y', 'G', 'R']

如果它總是在兩個項目之間,則可以使用內置字符串函數來提取它,例如:

print [ch for ch in data[data.index('Ph'):].partition('Dets=')[0].split(' ', 1)[1] if ch != ' ']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM