Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于检测struts`.do`页面的正则表达式-测试失败_Java_Regex - Fatal编程技术网

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中需要单反斜杠而不是双反斜杠。
你只想逃避这个点。删除第一个反斜杠,测试将通过

谢谢。。。你完全正确。今天没有喝足够的咖啡:)谢谢。。。你完全正确。今天没有喝足够的咖啡:)