http://www.exampledepot.com/egs/java.util.regex/Line.html上的示例給我錯誤兩次,但不應該!爲什麼?那麼,如果我另外(?s)它的工作,但它不應該沒有(?s)?工作?這種行爲在過去有沒有改變,或者作者沒有簡單地檢查過這個例子?正則表達式中匹配線邊界(Pattern.MULTILINE /(?m))在Java中是否中斷?
1
A
回答
1
首先,exampledepot.com是一個非常糟糕的網站:從來沒有有史以來假設在那裏發現任何「真相」。
在正則表達式中,$
從不匹配一個字符,它匹配一個位置。在(?m)
模式下,它匹配換行符之前的「空字符串」或字符串的結尾。因此,給定字符串"abc\r\ndef"
正則表達式".*abc$.*"
不匹配,因爲\r\n
不存在於您的正則表達式中。 $
匹配c
和\r
之間的位置。
你應該做的是這樣的:
System.out.println("abc\r\ndef".matches(".*abc$\r\n.*")); // false
System.out.println("abc\r\ndef".matches("(?m).*abc$\r\n.*")); // true
0
我不熟悉的社區維基是如何工作的,但隨時如果認爲有用的使用示例。
System.out.println(
Pattern.matches("(?m)^abc$\n^def$", "abc\ndef")
); // prints "true"
System.out.println(
Pattern.matches("(?sm)^abc$.^def$", "abc\ndef")
); // prints "true"
相關問題
- 1. 在java中匹配正則表達式
- 2. 爲什麼不Pattern.MULTILINE匹配的Java正則表達式的新線
- 3. 與javascript中的正則表達式匹配的hashtag邊界
- 4. 正則表達式在rubular中匹配,而不是在java中
- 5. Python3中的正則表達式邊界
- 6. 正則表達式邊界
- 7. 的Python:跨文件塊的邊界正則表達式匹配
- 8. 在java中正則表達式中匹配錯誤的模式
- 9. 在{}中與正則表達式匹配
- 10. 在正則表達式中匹配a +
- 11. 是否可以在正則表達式匹配中使用$ 1?
- 12. 正則表達式匹配正則表達式,但不是在JavaScript中?
- 13. 帶有單詞邊界的正則表達式不匹配
- 14. 正則表達式匹配
- 15. 正則表達式字邊界(\ B)匹配和空白
- 16. 正則表達式Pattern.MULTILINE問題
- 17. Java模式匹配正則表達式
- 18. 正則表達式匹配下劃線
- 19. C++正則表達式匹配全線
- 20. 從正則表達式表達式匹配匹配 - 錯誤
- 21. 使用正則表達式在java中匹配模式
- 22. 模式,匹配在Java中,正則表達式的幫助
- 23. .NET正則表達式匹配線
- 24. 正則表達式匹配「|」
- 25. 匹配正則表達式中的unicode
- 26. Groovy中的正則表達式匹配
- 27. C#中的正則表達式匹配
- 28. SAS中的正則表達式匹配
- 29. 檢查表達式是否與正則表達式匹配
- 30. 正則表達式匹配
爲什麼這個社區wiki? – 2010-04-25 08:45:40