6
A
回答
4
如果假設一個單引號總是之前或之後的空白,下面的一對正則表達式應該工作:
$line =~ s/\s'/ /g; #preceded by whitespace
$line =~ s/'\s/ /g; #followed by whitespace
你還需要考慮如果字符串以單引號開頭或結尾:
$str =~ s/^'//; #at the start of a string
$str =~ s/'$//; #at the end of a string
+1
+1但是\ s是空白字符不僅空間更大(這更好),你仍然有複數所有物的問題:男孩的玩具。 –
+0
感謝您的建議/編輯。 –
1
棘手的一個。一些單引號出現在字母之後或之前,但您只想刪除字母之間的那些引號。也許這樣的事情,使用負lookarounds:
s/(?<![\pL\s])'|'(?![\pL\s])//g;
之後或之前這將刪除要麼單引號沒有字母或空格。很多的否定來追蹤那裏。擴展版本:
s/
(?<![\pL\s])' # no letters or whitespace before single quote
| # or
'(?![\pL\s]) # no letters or whitespace after single quote
//gx;
這將覆蓋類的字眼 - 爲禮Algranti在評論中指出 - boys' toys
和that's
,但語言始終是棘手的預測。例如,這將是幾乎不可能解決類似:
'She looked at him and said, 'That's impossible!''
當然,如果你希望你的單引號僅在年底或字符串的開頭出現,你並不需要成爲這個幻想,您可以使用任何必要的方法刪除最後一個字符和第一個字符。比如,例如,如人造衛星只是建議:
s/^'|'$//g;
1
foreach (<DATA>) {
s/(:?(^\s*'|'$))//g;
print;
}
__DATA__
'It's raining again!'
輸出
It's raining again!
解釋
- 有做多一個比一個方式
(:?)
防止非所需捕獲
相關問題
- 1. 如何不刪除撇號文本文件中的某些單詞的撇號
- 2. Jsoup刪除引號和撇號
- 3. 如何使ucwords僅適用於單引號而不是撇號?
- 4. 刪除單引號,同時保留撇號Python,NLTK
- 5. 從arraylist中刪除撇號
- 6. 從URL中刪除撇號
- 7. 如何從文本中刪除撇號?
- 8. 如何從列中刪除撇號'?
- 9. Countif函數不用單引號撇號
- 10. 刪除單引號,逗號
- 11. 試圖刪除單撇號的python
- 12. 如何刪除Struts中的單引號?
- 13. 刪除單引號
- 14. 右單撇號與撇號?
- 15. 撇號不是 「\」
- 16. PostgreSQL中的撇號和引用 - 如何替換撇號?
- 17. 我想刪除字符串中的撇號,但不起作用
- 18. 無法刪除撇號
- 19. 球拍如何從列表中刪除括號和撇號?
- 20. Perl正則表達式:如何從CSV行中刪除引號內的引號
- 21. 問題與撇號和/或單引號
- 22. assert_select失敗,單引號(撇號)內容
- 23. 撇號不會讓我刪除項目
- 24. 如何在JSON.NET中對單引號/撇號進行編碼
- 25. 撇號不是由\
- 26. 如何:帶單引號的Mybatis查詢詞/撇號
- 27. python list Writerows - 如何刪除括號和撇號
- 28. 如何刪除括號內的單詞,除非括號中的第一個單詞是Perl中的'test'?
- 29. 如何刪除引號和逗號?
- 30. 如何刪除方括號和引號
你的樣品使用兩個單引號和撇號相同的字符,通過Unicode作爲'U + 0027 APOSTROPHE'定義的字符。我認爲這是您的意圖,但Unicode中也有不同的單引號字符,「U + 2018左單引號」和「U + 2019右單引號」。你可能想要更新你的問題,使其更清楚,所有的字符都是撇號字符(假設這就是你的意思)。 –
如果沒有一些自然語言處理,我不認爲你能做到這一點,這是一個複雜的案例:「這太令人沮喪了,」她說'男孩們的玩具無處不在'。 –