Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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正则表达式模式匹配器-如何允许选择?_Java_Regex - Fatal编程技术网

Java正则表达式模式匹配器-如何允许选择?

Java正则表达式模式匹配器-如何允许选择?,java,regex,Java,Regex,在Java中,我有一段代码处理ApacheWeb服务器日志,并检查URL扩展类型。当URL的格式为“/index.html”时,它工作得很好,但有时URL的格式为“/”,这会破坏代码 下面的代码工作正常,但如果输入行“/index.html”更改为“/”,则它将中断,因为第19行(\\.\\S*)检查后跟几个字符的点,但如果URL为“/”,则正则表达式找不到点 如何重写第19行(\\.\\S*)以允许选择.extension或“/” 换句话说: 如果URL=index.html,则扩展名为.ht

在Java中,我有一段代码处理ApacheWeb服务器日志,并检查URL扩展类型。当URL的格式为“/index.html”时,它工作得很好,但有时URL的格式为“/”,这会破坏代码

下面的代码工作正常,但如果输入行“/index.html”更改为“/”,则它将中断,因为第19行
(\\.\\S*)
检查后跟几个字符的点,但如果URL为“/”,则正则表达式找不到点

如何重写第19行
(\\.\\S*)
以允许选择.extension或“/”

换句话说:
如果URL=index.html,则扩展名为.html
如果URL=index.php,则扩展名为.php
如果URL=/,则扩展名为“”


使用以下正则表达式:

.* (?:/|.*(\\.\\S*)) .*
它使用管道
|
字符来匹配
/
或文件名与某处的点


?:
使组不捕获,以便
m2。组(1)
继续像以前一样工作。

使用以下正则表达式:

.* (?:/|.*(\\.\\S*)) .*
它使用管道
|
字符来匹配
/
或文件名与某处的点

?:
使组不捕获,以便
m2。组(1)
继续像以前一样工作