[英]Python Regex - Remove special characters but preserve apostraphes
我試圖從一些文本中刪除所有特殊字符,這是我的正則表達式:
pattern = re.compile('[\W_]+', re.UNICODE)
words = str(pattern.sub(' ', words))
超級簡單,但遺憾的是,當使用撇號(單引號)時會導致問題。 例如,如果我有“不”字樣,則此代碼返回“doesn”。
有沒有辦法調整這個正則表達式,以便它不會刪除這樣的實例中的撇號?
編輯:這是我所追求的:
doesn't this mean it -technically- works?
應該:
這不意味着它在技術上有效
像這樣?
>>> pattern=re.compile("[^\w']")
>>> pattern.sub(' ', "doesn't it rain today?")
"doesn't it rain today "
如果下划線也應該被過濾掉:
>>> re.compile("[^\w']|_").sub(" ","doesn't this _technically_ means it works? naïve I am ...")
"doesn't this technically means it works naïve I am "
我能夠使用此正則表達式將您的樣本解析為單詞列表: [az]*'?[az]+
。
然后你可以用空格加入列表的元素。
怎么樣
re.sub(r"[^\w' ]", "", "doesn't this mean it -technically- works?")
怎么樣([^\\w']|_)+
?
請注意,這不適用於以下內容:
doesn't this mean it 'technically' works?
這可能不是你想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.