我有一個與類似模式匹配的電子郵件串列:
第一封電子郵件有 5 個部分,而第二封電子郵件在 @mail.com 之前有 4 個部分(用連字符標記)
我需要提取組電子郵件的非產品/產品部分之后的 group_code。
例如對于 [email protected] 我需要提取紅色,
對于 [email protected] 我需要提取藍色。
組代碼之前的部分將始終是 prod 或 nonprod,此外,組代碼之前始終會有子字串“prod-”。
如何從具有不同部分數量的電子郵件中提取組代碼以始終獲取組代碼?
uj5u.com熱心網友回復:
re.findall('(?:prod-)(.*)-', s)
df['group'] = df['col2'].str.extract('(?:prod-)(.*)-' )
df
col1 col2 group
0 1 [email protected] red
1 2 [email protected] blue
2 3 NaN
uj5u.com熱心網友回復:
使用rfind 和查找
email2 = '[email protected]'
email = '[email protected]'
start = 'prod-'
start2= 'nonprod-'
end = '-'
print( (email[email.find(start or start2) len(start or start2):email.rfind(end)]))
print("\n")
輸出
red
uj5u.com熱心網友回復:
這應該作業
(?<=prod-)[a-z]
基于我們擁有的輸入資料
[email protected]
[email protected]
并且請注意,我們總是在搜索字串前面有nonprod或prod,我們可以使用正則運算式斷言。在這種情況下,肯定的后向斷言(?<=prod-)我們定義我們正在尋找prod-就在任何單詞[az] 之前
注意:斷言不是結果的一部分
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519977.html
上一篇:如何在正則運算式python中用多個值替換mulile字串
下一篇:正則運算式查找不同字符之間的文本
