我有一個帶有評論的欄位。有些評論只是“否”,但后面有不同的“o”。我想對這些評論進行轉換,這樣我只會得到“不”的回報。如何使用正則運算式實作這一點?
例如:
remove_trailing_os("noooooo") 應該輸出“否”
remove_trailing_os("nooOOoooooooo") 應該輸出“否”
uj5u.com熱心網友回復:
您可以使用不區分大小寫的反向參考:
import re
re.sub(r'(.)(?i:\1) $', r'\1', "nooOOoooooooo", re.I)
輸出: 'no'
正則運算式:
(.) # match a character
(?i:\1) $ # match trailing case insensitive repeats of the character
uj5u.com熱心網友回復:
這似乎類似于如何在第二次出現“”(空格)后洗掉所有字符
但本質上你想用o替換空間。因此
## Assuming the two instances
t = 'noooooo'
t2 = 'nooOOoooooooo'
## Trying them on the two instances
t[:t.find('o',t.find('o') 1)]
t2[:t2.find('o',t2.find('o') 1)]
uj5u.com熱心網友回復:
您可以嘗試加入
cc = "noooooo"
cc1= "nooOOoooooooo"
print(''.join(sorted(set(cc), key=cc.index)))
print(''.join(sorted(set(cc1.lower()), key=cc1.index)))
會給
no
no
也可以使用正則運算式
repeat_pattern = re.compile(r'(\w)\1*', flags=re.IGNORECASE)
d = repeat_pattern.sub(r"\1", cc)
d1 = repeat_pattern.sub(r"\1", cc1)
print(d)
print(d1)
也會給
no
no
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421911.html
標籤:
上一篇:分隔CSV字串的字母和浮點數
