2
A
回答
3
你的正則表達式有幾個問題。例如,\b
字邊界不能用於字符類,因此[^\b]*
將無法按預期工作。
你可能要像
(?s)\b(\w+)\b.*\b\1\b
這將從字到最後一個的第一次出現在整個文本相匹配。這可能不是你實際想要的。
另一個想法:
(?s)\b(\w+)\b.*?\b\1\b
這隻會匹配從詞第一次出現在旁邊的文本。
用這兩種方法的問題是,例如在文本像
foo bar bar foo
正則表達式將匹配來自foo
到foo
,盲目地忽略了存在重複bar
在兩者之間。
所以,如果你真的想找到發生在重複的所有單詞,然後用
(?s)\b(\w+)\b(?=.*?\b\1\b)
說明:
(?s) # Allow the dot to match newlines
\b(\w+)\b # Match an entire word
(?= # Assert that the following regex can be matched from here:
.*? # Any number of characters
\b\1\b # followed by the word that was previously captured
) # End of lookahead
相關問題
- 1. 正則表達式來匹配單詞
- 2. Python正則表達式匹配多次出現的單詞
- 3. 正則表達式匹配單詞的第一次出現
- 4. 正則表達式:只匹配單詞出現一次
- 5. 用於匹配單詞或單詞的正則表達式
- 6. 正則表達式:匹配所有包含單詞的單詞
- 7. PHP的正則表達式匹配詞
- 8. 正則表達式匹配後的詞
- 9. 正則表達式匹配的文本
- 10. 正則表達式匹配的文本
- 11. AS3正則表達式 - 如何連續匹配2次匹配?
- 12. 用大寫字母匹配單詞上的正則表達式多行文本中的正則表達式
- 13. 使用正則表達式匹配部分單詞或單詞
- 14. 正則表達式匹配短語中的單個單詞
- 15. 正則表達式 - 匹配一組詞
- 16. C++正則表達式匹配「+」量詞
- 17. 正則表達式匹配兩個詞
- 18. 正則表達式匹配文本
- 19. 正則表達式匹配文本塊
- 20. 正則表達式,匹配ccurrenced文本
- 21. 正則表達式匹配文本
- 22. 2個匹配的正則表達式
- 23. 正則表達式在文本中多次匹配
- 24. 用於匹配句子中的單詞的正則表達式
- 25. 正則表達式匹配後綴到英文單詞
- 26. 正則表達式匹配qoutes中的所有單詞
- 27. 使用正則表達式匹配MYSQL中的一個單詞
- 28. 正則表達式:匹配fullstop和python中的一個單詞
- 29. 正則表達式匹配句子中的第一個單詞
- 30. PHP匹配正則表達式中的多個整個單詞
感謝我只需要這個\ B(\ w +)\ b 。* \ b \ 1 \ b但是,謝謝 – kabell