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