我有Java字符串:
String b = "/feedback/com.school.edu.domain.feedback.Review$0/feedbackId");
Run Code Online (Sandbox Code Playgroud)
我也生成了我希望匹配此字符串的模式:
String pattern = "/feedback/com.school.edu.domain.feedback.Review$0(.)*";
Run Code Online (Sandbox Code Playgroud)
当我说它b.matches(pattern)回来false.现在我知道美元符号是Java RegEx的一部分,但我不知道我的模式应该是什么样子.我假设$ in pattern需要被一些转义字符替换,但不知道有多少.这个$符号对我很重要,因为它有助于我区分列表中的元素(美元后的数字),我不能没有它.
Tim*_*ker 56
使用
String escapedString = java.util.regex.Pattern.quote(myString)
Run Code Online (Sandbox Code Playgroud)
以自动转义所有特殊字符的正则表达式给定的字符串中.
Col*_*ert 30
你需要使用反斜杠()$ 在正则表达式中转义\,但是作为反斜杠是字符串中的转义字符,你需要转义反斜杠本身.
您将需要以相同的方式转义任何特殊的正则表达式char,例如使用".".
String pattern = "/feedback/com\\.navteq\\.lcms\\.common\\.domain\\.poi\\.feedback\\.Review\\$0(.)*";
Run Code Online (Sandbox Code Playgroud)
在Java中的正则表达式都.和$特殊.你需要用2个反斜杠来逃避它,即.
"/feedback/com\\.navtag\\.etc\\.Review\\$0(.*)"
Run Code Online (Sandbox Code Playgroud)
(1个反斜杠用于Java字符串,1个用于正则表达式引擎.)
| 归档时间: |
|
| 查看次数: |
43959 次 |
| 最近记录: |