您的位置:首页 > 其它

正则表达式初学习

2016-03-15 23:05 274 查看

正则表达式初学习

2016/3/15

今天学到的几个元字符:\b,表示匹配到单词的开始或者结束;

\w,匹配到数字或者汉字或者下划线或者字母;\s,表示匹配空白符,所谓空白符包括换行符、制表符、空格等。.点,匹配换行符以外的任意字符;\d,匹配数字。

然后还有+,表示匹配到一次或者多次,至少是一次,*匹配到多次,可以是零次。

换行符就是’\n’。

今天就搞到这里,十一点半,睡觉,养精蓄锐,明天工作呢。

2016/3/20 10:15

卧槽,写的东西不见了,补上。

自己学正则,最不爽的是没有资源,即使看不懂不要紧,一点点啃,总会有顿悟的时候。

我看正则的资源是http://www.jb51.net/tools/zhengze.html

精简,入门足够了。

我学正则是,为了用正则匹配请求的网页报文中的url,比如报文中的url有类似”http://www.baidu.com“的,也有类似(https://www.baidu.com),还有(https://202.108.22.5)的。

以前也看过链接中的资源,但是不用心,看的比较粗糙,所以还是不会,这次又看了一遍,看到反义那个地方,顿时灵光一闪,这个知识刚好能解决我的问题。

最后我的正则字符串是:”(http:www.//[^\)]*)”;(这个正则表达式被转义了,具体看下面代码)这里说下我用的是java。

talk is cheap , show me the code(没代码说个几把)。

下面是哥的代码:

String content = "asdfasdfadsfas(htt"
+ "p://www.baidu.com)sdfasdfasdf";
String regex = "\\(http:www.\\/\\/[^\\)]*\\)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(content);
System.out.println(m.group());


然而这段代码,匹配是匹配到了,但是有错误:

Exception in thread “main” java.lang.IllegalStateException: No match found

去网上查查,原理没搞清楚,但是搜到了使用group函数的正确姿态。

while(m.find()){
System.out.println(m.group());
}


OK,一切搞定。

正则先学到这里,以后有空,或者再用到,接着搞。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: