關閉。這個問題需要更加集中。它目前不接受答案。
想改進這個問題?更新問題,使其僅通過編輯此帖子專注于一個問題。
2天前關閉。
改進這個問題所以,我有一個元素串列,例如:
mylist=["AAA M640-305-168", "BBB CC R M450-20 M"]
我想保留:
output_1=["640-305-168", "450-20 M"]
并且:
output_2=["640-305-168", "450-20"]
請注意,對于最后一個要求,只保留了數字和連字符。有沒有辦法在python中使用正則運算式來實作這一點?提前致謝!
uj5u.com熱心網友回復:
這是一個不使用正則運算式的單行代碼:
>>> mylist=["AAA M640-305-168", "BBB CC R M450-20 M"]
>>> [w.lstrip('M') for e in mylist for w in e.split() if w.lstrip('M').replace('-', '').isnumeric()]
['640-305-168', '450-20']
uj5u.com熱心網友回復:
在串列理解中使用正則運算式(海象運算子需要 python≥3.8 ):
mylist=["AAA M640-305-168", "BBB CC R M450-20 M"]
import re
output_1 = [m.group(0) if (m:=re.search(r'\d.*', s)) else s for s in mylist]
# ['640-305-168', '450-20 M']
output_2 = [m.group(0) if (m:=re.search(r'[\d-] ', s)) else s for s in mylist]
# ['640-305-168', '450-20']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483131.html
