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