我是正則運算式的新手,我想知道如何生成一個包含特殊字符和 3 個以上字母的大寫字母的模式。
假設我有一個這樣的字串:
my_string = 'Syrians/NORP, Turkish/NORP, Turkish/NORP, Turkish/NORP, the last 2 , 3 years/DATE, Turkey/LOC'
我試過的:
my_new_string = re.findall('[\w \,] /[A-Z]{4}', my_string)
#result
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'years/DATE']
預期結果:
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'the last 2 , 3 years/DATE', 'Turkey/LOC']
我也為 3 或以上的大寫字母模式而苦苦掙扎。
你能提出一個好的解決方案嗎?提前致謝!
uj5u.com熱心網友回復:
>>> re.findall(r'\w[\w, ] /[A-Z]{3,4}', my_string)
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'the last 2 , 3 years/DATE', 'Turkey/LOC']
只需在您的字符類中添加空間(在 ' ' 之后不需要\w),范圍從 3 到 4 以匹配“LOC”(或您需要的任何范圍)。以字母開頭以避免匹配前導空格(這也匹配_btw 但在這里不是問題)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473907.html
上一篇:如何將Python的BeautifulSoup.text轉換為大寫?
下一篇:我應該如何在“
