Java 用于检测struts`.do`页面的正则表达式-测试失败
我正在测试我继承的旧项目中存在的以下正则表达式:Java 用于检测struts`.do`页面的正则表达式-测试失败,java,regex,Java,Regex,我正在测试我继承的旧项目中存在的以下正则表达式: *\\.do 在Java中,正则表达式声明为: private static final String[] ACCESS_REGEX = {".*\\.do", ""}; 基本上是使用Pattern.matches方法的包装进行检查:value.matches(检查) 这个旧的正则表达式可以很好地处理各种传入请求,例如home.do,我正在各种正则表达式测试站点上进行测试(如下所示): 然而,我看不到如何让正则表达式匹配我认为应该匹配的
*\\.do
在Java中,正则表达式声明为:
private static final String[] ACCESS_REGEX = {".*\\.do", ""};
基本上是使用Pattern.matches方法的包装进行检查:value.matches(检查)
这个旧的正则表达式可以很好地处理各种传入请求,例如home.do
,我正在各种正则表达式测试站点上进行测试(如下所示):
.do
结尾的字符串,并且前面有一些字符。但是,当我测试这些时,没有找到匹配项
测试字符串示例:
请注意特殊含义,
\
字符在正则表达式和Java字符串文本中都有
正则表达式应该是
.*\.do
这对我来说非常有效
在Java字符串文本中,还需要转义\
字符,因此Java中的正则表达式必须是
.*\\.do
请注意特殊含义,
\
字符在正则表达式和Java字符串文本中都有
正则表达式应该是
.*\.do
这对我来说非常有效
在Java字符串文本中,还需要转义\
字符,因此Java中的正则表达式必须是
.*\\.do
问题是,您正在使用的在线正则表达式工具需要纯正则表达式(没有特殊字符转义),这是
*\.do
在您的特定情况下,请注意单个反斜杠
另一方面,当在Java中用字符串文字定义时,正则表达式需要特殊的转义字符,因此Java代码中的“*\\.do”
在在线测试工具中使用未转义的正则表达式。问题在于,您正在使用的在线正则表达式工具需要普通正则表达式(无特殊字符转义),即
*\。在您的特定情况下,请注意单个反斜杠
另一方面,当在Java中用字符串文字定义时,正则表达式需要特殊的转义字符,因此Java代码中的“*\\.do”
在在线测试工具中使用未转换的正则表达式。在正则表达式中需要单反斜杠而不是双反斜杠。
你只想逃避这个点。删除第一个反斜杠,测试将通过在regexp中需要单反斜杠而不是双反斜杠。
你只想逃避这个点。删除第一个反斜杠,测试将通过谢谢。。。你完全正确。今天没有喝足够的咖啡:)谢谢。。。你完全正确。今天没有喝足够的咖啡:)