我需要將字串轉換為某種格式:
#1 - New York到New York
#4 - London到London
等等。
我最初只是洗掉了特殊字符,但是這包括空格,因此我遇到了諸如NewYork.
我原來的方式:
''.join(filter(str.isalpha, myString))
所以我基本上需要洗掉#、數字、空格(在城市名稱開始之前)和 -
uj5u.com熱心網友回復:
我建議使用子字串將字串分成兩個塊' - ',然后抓取最后一個塊:
result = myString.split(' - ', 1)[-1]
查看Python 演示:
texts = ['#1 - New York', '#4 - London']
for myString in texts:
print( myString, '=>', myString.split(' - ', 1)[-1] )
輸出:
#1 - New York => New York
#4 - London => London
re.sub(r'^[\W\d_] ', '', myString)關于正則運算式解決方案,您可能希望使用or洗掉字串開頭的所有非字母re.sub(r'^[^a-zA-Z] ', '', myString)。Note[\W\d_] 是一個完全識別 Unicode 的模式,而^[^a-zA-Z] 只是 ASCII。
uj5u.com熱心網友回復:
如果您仍然想使用正則運算式,盡管使用更簡單的拆分方法:
#\d \s*-\s*(.*)
#匹配 # 符號\d匹配 后的至少一位數字\s*匹配任何可能跟隨的空格-匹配連字符\s*匹配任何可能跟隨的空格(.*)為所有其他字符創建一個捕獲組,直到換行
然后匹配:
import re
match = re.search(r"#\d \s*-\s*(.*)", "#1 - New York")
if match:
result = match.group(1)
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/443802.html
上一篇:資料框:如何洗掉字串中的點
下一篇:必須搜索子字串是否存在于字串中
