3 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以搜索緊跟左括號(hào)的字母
>>> [re.sub(r'(\w)\(', r'\1 (', i) for i in listx]
['United States (US)',
'United States (US)',
'New York (NY)',
'New York (NY)']
要?jiǎng)h除重復(fù)項(xiàng),您可以set從此生成器表達(dá)式創(chuàng)建一個(gè)
>>> set(re.sub(r'(\w)\(', r'\1 (', i) for i in listx)
{'United States (US)', 'New York (NY)'}

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以做
new_listx = ["{} {}".format(re.match('(.*)(\(.*\))', i).group(1).rstrip() ,re.match('(.*)(\(.*\))', i).group(2)) for i in listx]
print(new_listx)
輸出
['United States (US)', 'United States (US)', 'New York (NY)', 'New York (NY)']
正則表達(dá)式將文本分成兩組,一組在 () 之前,第二組在 () 之后,它正在修剪第一組右側(cè)的空間。
那么你可以做
print(set(new_listx))
您將獲得一組獨(dú)特的值。
{'New York (NY)', 'United States (US)'}

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以試試這個(gè)。你可以re.sub在這里使用。
listx = ['United States(US)', 'United States (US)', 'New York(NY)', 'New York (NY)']
[re.sub(r'.(\(.*\))',r' \1',i) for i in listx]
# ['United State (US)', 'United States (US)', 'New Yor (NY)', 'New York (NY)']
正則表達(dá)式模式解釋:
.
匹配任何字符(
組括號(hào)的開始\(
匹配(
.*
貪婪地匹配。' \1'
用空格匹配組子匹配組。
添加回答
舉報(bào)