Java正则表达式的匹配问题
(http://|www)\56?\\w+\56{1}\\w+\56{1}\\p{Alpha}+为什么能够匹配http://xiaojiang.cn我的拆法如下:(htt...
( http://|www)\56?\\w+\56{1}\\w+\56{1}\\p{Alpha}+为什么能够匹配 http://xiaojiang.cn
我的拆法如下:
( http://|www)\56?匹配http://
\\w+\56{1}匹配xiaojiang.
\56{1} \\p{Alpha}+匹配.cn
但是中间还多出一个 \\w+\56{1}, \\w+\56{1}为什么可以不用匹配?
多出了\\w+\56{1},应该是匹配失败啊,但是我测试结果是匹配成功,何解? 展开
我的拆法如下:
( http://|www)\56?匹配http://
\\w+\56{1}匹配xiaojiang.
\56{1} \\p{Alpha}+匹配.cn
但是中间还多出一个 \\w+\56{1}, \\w+\56{1}为什么可以不用匹配?
多出了\\w+\56{1},应该是匹配失败啊,但是我测试结果是匹配成功,何解? 展开
展开全部
原因在于\56(.的匹配上),
如果你换成.本身,就会匹配失败
(http://|www)\\.?\\w+\\.{1}\\w+\\.{1}\\p{Alpha}+
具体为什么你提到的那个我也不是很清楚,我估计应该在\56可能在转换期间发生了问题。。
如果你换成.本身,就会匹配失败
(http://|www)\\.?\\w+\\.{1}\\w+\\.{1}\\p{Alpha}+
具体为什么你提到的那个我也不是很清楚,我估计应该在\56可能在转换期间发生了问题。。
追问
“.”会匹配所有的字符,当然不行哦~
只能用“\56”来代替“.”
还是应该多谢你的回答呀!
追答
你这个问题我昨天深究了下,貌似正则有个贪婪模式的。不过我还没彻底弄明白贪婪模式,所以没有增加新的解释上来。
点号.是需要转义的。你那个不能用\.么?
\.也代表.本身的啊,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询