正则表达式知识及部分常用正则表达式

最近碰到好几个需要正则表达式校验的地方,无奈学习了的知识已经还回去了。索性记下来,以后可以用。

不说了,开讲渔与鱼。
渔:

  1. 什么是正则表达式?

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

  2. 正则表达式的作用?

    给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

    1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
    2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
  3. 正则表达式的特点是:

    1. 灵活性、逻辑性和功能性非常的强;
    2. 可以迅速地用极简单的方式达到字符串的复杂控制。
    3. 对于刚接触的人来说,比较晦涩难懂。
  4. 正则表达式的符号

这里写图片描述
括号的作用(yes|no)demo,此处匹配yesdemo 或者是nodemo这两种情况。去掉括号yes|nodemo则是匹配yes或者是nodemo
^:表示匹配行首的文本

$:表示匹配行尾的文本

鱼:

常用的正则表达式:

邮箱:

`\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}`

^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$

[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

网址:

[a-zA-z]+://[^\s]*

^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+

手机号:

0?(13|14|15|18)[0-9]{9}

电话号:

\d{3}-\d{8}|\d{4}-\{7,8}

[0-9-()()]{7,18}

IP地址:

(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)

匹配身份证号:

^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

String去除前面/后面的0:

//去掉前面的0
String newStr = str.replaceAll("^0+", "" );
//去掉后面的0
String newStr = str.replaceAll("0+$", ""); 

Java中的使用

Pattern pattern = Pattern.compile("正则表达式");
Matcher matcher = pattern.matcher("待匹配的字符串");
matcher.matches()//通过匹配为true,反之则为false

最后给大家推荐两个比较好用的正则表达式测试网址:

http://tool.chinaz.com/regex

http://tool.oschina.net/regex/#

猜你喜欢

转载自blog.csdn.net/u011391773/article/details/52472916
今日推荐