那麼,我正在尋找一個Java中的正則表達式,刪除短於3個字符的所有單詞。 我認爲像\s\w{1,2}\s
這樣的東西會抓住所有1和2字母的單詞(一個空格,一到兩個單詞字符和另一個空格),但它不起作用。 我錯在哪裏?刪除短於n的所有單詞的正則表達式
回答
我已經很好地工作了,但它花了兩個通過。
public static void main(String[] args) {
String passage = "Well, I'm looking for a regexp in Java that deletes all words shorter than 3 characters.";
System.out.println(passage);
passage = passage.replaceAll("\\b[\\w']{1,2}\\b", "");
passage = passage.replaceAll("\\s{2,}", " ");
System.out.println(passage);
}
第一遍替換包含少於三個字符與單個空間中的所有字。請注意,我必須在字符類中包含撇號,因爲「我」這個詞在沒有它的情況下給我帶來麻煩。您可以在文本中找到其他需要在此處添加的特殊字符。
第二關是必要的,因爲第一關留下了雙空間的幾個位置。這隻會將所有出現的2個或更多空間摺疊爲一個。這取決於你是否需要保持這一點,但我認爲空間崩潰會更好。
輸出:
嗯,我正在尋找Java中的正則表達式是刪除所有單詞短於3個字符。
那麼,尋找regexp Java刪除短於字符的所有單詞。
是的,這個工程很好。 – janesconference 2009-09-26 00:54:45
僅供參考 - 它會使「不能相信它」=> 「可以相信它」 – krinker 2014-09-17 00:04:25
嘗試:\b\w{1,2}\b
雖然你仍然必須擺脫出現的雙重空間。
如果你不想空白匹配做,你可能想使用
\b\w{1,2}\b
得到了這個詞的邊界。
這對我在RegexBuddy中使用Java風格起作用;對於測試字符串
「狗是一個有趣的貓」
它強調了「是」和「a」。對於行的開始/結尾處的單詞也是如此。
您可能想要發佈代碼示例。
(而且,正如GameFreak剛剛發佈,您還是會落得雙空格。)
編輯:
\b\w{1,2}\b\s?
是另一種選擇。這將部分解決空間剝離問題,儘管字符串末尾或標點後面的單詞仍可能導致問題。例如,「狗是否有趣?」變成「狗的樂趣?」無論如何,你仍然會遇到大寫字母問題(狗現在應該是Dog)。
請在downvoting時發表評論。我在撰寫這篇文章的同時,GameFreak發佈了他的答案;我沒有簡單地複製它。 – TrueWill 2009-09-26 00:21:54
我改變了你。 – janesconference 2009-09-26 00:42:29
謝謝@janesconference! :) – TrueWill 2009-09-26 00:49:58
如果你有一個這樣的字符串:
hello there my this is a short word
此正則表達式匹配字符串大於或等於長度爲3個字符的所有單詞:
\w{3,}
結果造成:
hello there this short word
對我而言,這是最簡單的方法。爲什麼試圖匹配你不想要的東西,什麼時候能夠比較容易地匹配你想要的東西?沒有雙重空間,沒有剩菜,並且標點符號在您的控制之下。其他方法在多個空間中打破,並且不是很健壯。
這似乎是一個好主意,但我目前使用GWT並且只有String類正則表達式方法。所以我可以拆分我的字符串或替換我的正則表達式,但我不知道如何獲得我只匹配的東西:( – janesconference 2009-09-26 00:36:57
- 1. 正則表達式:刪除所有,但?
- 2. 刪除所有正則表達式
- 3. 正則表達式:匹配所有包含單詞的單詞
- 4. Ultraedit正則表達式來刪除包含數字的所有單詞
- 5. 正則表達式 - 需要刪除除單詞外的所有字符,允許一個空格繼續單詞
- 6. 刪除包含某個單詞的括號 - 正則表達式
- 7. java正則表達式刪除重複的單詞
- 8. javascript正則表達式只刪除完整的單詞
- 9. 用於匹配單詞或單詞的正則表達式
- 10. 正則表達式|刪除給定單詞前多行的單詞
- 11. Python的正則表達式刪除Word用正則表達式
- 12. 正則表達式匹配引號外的所有單詞嗎?
- 13. 正則表達式 - 匹配括號中的所有單詞
- 14. 正則表達式匹配qoutes中的所有單詞
- 15. c#正則表達式刪除少於3個字母的單詞?
- 16. 刪除單詞括號內用正則表達式
- 17. php:通過正則表達式刪除單詞
- 18. 刪除sentense中短於4個字母的所有單詞
- 19. 如何刪除我的正則表達式中的\ n?
- 20. 正則表達式刪除之間的所有內容<>
- 21. 正則表達式刪除[]和其中的所有內容
- 22. 正則表達式刪除所有特殊字符的URL
- 23. 正則表達式刪除一行後的所有內容
- 24. 正則表達式問題 - 刪除之間的所有內容:〜
- 25. 從段落中刪除所有屬性的正則表達式
- 26. 蟒蛇正則表達式,刪除所有除\ d \ S \ W
- 27. 正則表達式,沒有太多的短語,但匹配詞
- 28. 正則表達式:匹配除一個單詞外的所有內容
- 29. python正則表達式來匹配有n個詞的句子
- 30. PHP的正則表達式 - 刪除短語
字符串中的所有單詞短於3還是一次一個單詞? – 2009-09-26 00:09:05
單一段落中的所有單詞,我只是不需要它們。 – janesconference 2009-09-26 00:13:15