日期:2014-05-19  浏览次数:20671 次

正则表达式的疑惑
我写了一个匹配url的,可能没考虑全,先这么看着吧
String urlRegex = "[http|https]://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*";

String urlRegex = "(http|https)://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*";

Pattern p = Pattern.compile(urlRegex);
Matcher m = p.matcher("http://www.luger.me");
while(m.find()){
System.out.println(m.group());
}

为什么第一个urlRegex 输出的是p://www.luger.me
第二个就输出http://www.luger.me
求解答
我想找位师兄看看能不能帮我内推进一个互联网公司实习。下面是我的简历
http://www.luger.me/luger/resume.htm  这是我的简历
http://www.luger.me/mywork  这是我的作品
http://www.luger.me  这是我的博客

可以对我进行笔试。
------最佳解决方案--------------------
你对正则中关于中括号的作用理解存在偏差,它的意思是任何一个都行,比如:
[0-9]用于匹配 0~9的任何一个数字
[!?]用于匹配 感叹号 或 问号
------其他解决方案--------------------
[X]表示Character classes,最终是输出一个character,哪个character? 可以是来自中括号字符集和X中的任意一个

(X
------其他解决方案--------------------
Y) 这里括号是capturing group,即捕获组,在这里括号其实没起作用,最终输出的是X或Y


------其他解决方案--------------------
集和 => 集合
------其他解决方案--------------------
引用:
你对正则中关于中括号的作用理解存在偏差,它的意思是任何一个都行,比如:
[0-9]用于匹配 0~9的任何一个数字
[!?]用于匹配 感叹号 或 问号
谢谢哈
------其他解决方案--------------------
引用:
[X]表示Character classes,最终是输出一个character,哪个character? 可以是来自中括号字符集和X中的任意一个

(X