輸入:
string="1.Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking2.Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering3.Harrison-Lu-Java-9223391910-HarrisonLu@gmail.com-Mumbai-INDIA-Samsung-Engineering4.Andrew-Joseph-Javascript-9200091910-AndrewJoseph@gmail.com-Toronto-CANADA-Dell-Engineering5.Larry-Ken-SQL-8880091910-LarryKen@gmail.com-Newyork-USA-HP-Management"
預期輸出:
[
"1.Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking",
"2.Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering",
...
]
嘗試:我曾嘗試使用string.split(range(0,5) "."). 什么是最好的方法來做到這一點?
uj5u.com熱心網友回復:
我通常不會首先使用正則運算式,但這要求re.split.
parts = re.split(r'(\d\.)`, string)
這確實需要一些后期處理。它創建:
['', '1.', 'Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking', '2.', 'Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering', ...
所以你需要結合其他元素。
uj5u.com熱心網友回復:
您可以使用帶有環視斷言的正則運算式進行拆分,該斷言斷言 1 位數字后跟右側的點 using(?=\d \.) 并斷言不是左側的字串的開頭 using(?<!^)
(?<!^)(?=\d \.)
正則運算式演示| Python 演示
import re
pattern = r"(?<!^)(?=\d \.)"
string="1.Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking2.Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering3.Harrison-Lu-Java-9223391910-HarrisonLu@gmail.com-Mumbai-INDIA-Samsung-Engineering4.Andrew-Joseph-Javascript-9200091910-AndrewJoseph@gmail.com-Toronto-CANADA-Dell-Engineering5.Larry-Ken-SQL-8880091910-LarryKen@gmail.com-Newyork-USA-HP-Management"
res = re.split(pattern, string)
print(res)
輸出
[
'1.Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking',
'2.Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering',
'3.Harrison-Lu-Java-9223391910-HarrisonLu@gmail.com-Mumbai-INDIA-Samsung-Engineering',
'4.Andrew-Joseph-Javascript-9200091910-AndrewJoseph@gmail.com-Toronto-CANADA-Dell-Engineering',
'5.Larry-Ken-SQL-8880091910-LarryKen@gmail.com-Newyork-USA-HP-Management'
]
或者,除了拆分之外,您還可以使用模式來匹配 1 個或多個數字后跟一個點,然后匹配直到第一次出現相同的模式或字串的結尾。
\d \..*?(?=\d \.|$)
正則運算式演示| Python 演示
import re
pattern = r"\d \..*?(?=\d \.|$)"
string="1.Adam-Lee-Dotnet-9191919191-AdamLee@gmail.com-London-UK-Oracle-Banking2.Peter-Smith-Salesforce-9222291910-PeterSmith21@gmail.com-Mumbai-INDIA-Oracle-Engineering3.Harrison-Lu-Java-9223391910-HarrisonLu@gmail.com-Mumbai-INDIA-Samsung-Engineering4.Andrew-Joseph-Javascript-9200091910-AndrewJoseph@gmail.com-Toronto-CANADA-Dell-Engineering5.Larry-Ken-SQL-8880091910-LarryKen@gmail.com-Newyork-USA-HP-Management"
res = re.findall(pattern, string)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362738.html
上一篇:根據另一列的值查找列中的常用詞
