正则表达式

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 正则表达式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、元字符

代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
[…] 匹配[…]内任意字符
|
^和$ 分别表示匹配字符串的开始和结束,java中可以省略,加上更严谨

示例:
1) . 匹配任何任意字符 例如 . 可以匹配 1,n,*,+,- ,等
2) \d\w\s 匹配第一个字符为数字,第二个字符为字母或数字、或下划线或汉字,第三字符为空格的字符串 例如:11 ,2a , 1_
3) ^\d\d\d$ 匹配三个全部都为数字的字符串 例如: 123,456,789
4) [ABC] 匹配[…]中任意的一个 例如: A,B,C
5) AB|CD 匹配AB或者CD 例如: AB,CD

2、反义字符

代码 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
[^x] 匹配除了x以外的任意字符

示例:
1)\W 匹配除字母、数字、下划线、汉字以为的字符形如 +,-,*
2)\S 匹配除空格以外的任意字符形如:1,* ,)

3、限定字符

代码 说明
* 重复零次或更多次
+ 重复一次或更多次
重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

示例:
1)\d* 匹配重复0次或多次数字 例如:可能为空 或 任意数字 (2,3。。。。)
2)\d+ 匹配重复1次或多次数字 例如:可能为1个或多个数字 1,23,234,2345,…
3) \d? 匹配重复次个或者一次数字 例如:可能为空或者任意的一个数字(1,2,。。。)
4) \d{8} 匹配重复8次数字 例如:123456768
5) \d{4,} 匹配重复至少4次数字 例如:1234,12345,124244,。。。。。
6) ^\d{8,11}$ 匹配重复8-11次数字 例如:12345678,123456789,1234567890

4、分组提取字符串

匹配电话号并提取示例:

Pattern p = Pattern.compile("^(\\d{3,4})-(\\d{6,8})$");
Matcher matcher = p.matcher("010-12345678");
if(matcher.matches()){
    String whole = matcher.group(0);  // "010-12345678",0表示匹配整个字符串
    String areaCode = matcher.group(1);  // "010",1表示匹配的第一个子串
    String telNumber = matcher.group(2); //  "12345678",2表示匹配的第2个子串
}

5、非贪婪匹配

贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符。

非贪婪匹配,有时候需要匹配尽可能少的字符。

代码 说明
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复

6、搜索字符串

String s = "the quick brown fox jumps over the lazy dog.";
Pattern p = Pattern.compile("the");
Matcher m = p.matcher(s);
while (m.find()){
    String sub = s.substring(m.start(), m.end());
    System.out.println(sub + ", start=" + m.start() + ", end=" + m.end());
}

the, start=0, end=3
the, start=31, end=34

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148660.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!