簡體   English   中英

無法使用Python從列表中提取特定模式並重新

[英]can't extract a specific pattern from a list using Python and re

我有一堆包含這些類型的值的列表:

('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67')

我只對以“ id”開頭的值加上其后的數字感興趣。

例如,我想從此列表中提取“ id3”

('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67') 

或來自的“ id33”

('CDI - AC - MO - id33 - Mobile', '2018-01-12', '48,67')

感謝re庫,我正在努力實現這一目標

這是我的代碼:

matchObj = re.search( r'id*', my_list, re.M|re.I)

您有什么建議可以幫助您返回所需的值嗎?

謝謝

您可以使用Regex模式:

\bid\d+\b
  • \\b匹配單詞末尾的空字符串(零寬度)

  • id Macthes id字面意思

  • \\d+匹配一個或多個數字


例:

In [113]: t1 = ('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67')

In [114]: t2 = ('CDI - AC - MO - id33 - Mobile', '2018-01-12', '48,67')

In [115]: pat = re.compile(r'\bid\d+\b')

In [119]: [pat.search(i).group() for i in t1 if pat.search(i)]
Out[119]: ['id3']

In [120]: [pat.search(i).group() for i in t2 if pat.search(i)]
Out[120]: ['id33']

暫無
暫無

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

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