加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式实战

发布时间:2020-12-14 04:34:10 所属栏目:百科 来源:网络整理
导读:先推荐一个正则学习的地址,这个博客讲的非常清晰,http://www.bejson.com/knownjson/regexJiaocheng/。我写的这篇主要是为了记录在工作中非常实用的一些正则表达式。 先简单介绍一下常用的一些字符含义: ^ 正则匹配的开始 $ 正则匹配的结尾 * 匹配出现0次

先推荐一个正则学习的地址,这个博客讲的非常清晰,http://www.bejson.com/knownjson/regexJiaocheng/。我写的这篇主要是为了记录在工作中非常实用的一些正则表达式。

先简单介绍一下常用的一些字符含义:

^ 正则匹配的开始

$ 正则匹配的结尾

* 匹配出现0次或多次

+ 匹配出现1此或多次

? 匹配出现0此或多次

x|y 匹配x或y

{n} 匹配出现n次

{n,} 匹配出现n次以上

{n,m} 匹配出现n到m次

[xyz] 匹配字符集

[^xyz] 不匹配这个字符集

其他一些就不在这里多说了可以查看上边忘记中的介绍。

在JS脚本中,可以使用RegExp来创建一个正则对象,然后进行test,例:

var reg = new RegExp('^[a-zA-Z0-9]+$');//匹配英文大小写以及数字
alert(reg.test("sdf123-"));//输出false
JS脚本中第二种创建方式是使用字符串常量方式来创建,例:
var reg = /^[a-zA-Z0-9]*$/g;
alert(reg.test("123"));//输出为true
在java中,也有两种使用正则的方式,第一种是利用Pattern对象,使用Pattern.compile类生成一个正则对象然后利用matcher类匹配字符串,第二种是直接使用String中的matches方法类匹配字符串,例:
Pattern pattern = Pattern.compile("[a-zA-Z0-9]+$");//匹配英文大小写以及数字
System.out.println(pattern.matcher("123asd-").matches());//输出false
String str = "123asd";
System.out.println(str.matches("^[a-zA-Z0-9]+$"));//输出true

下面列举一下工作中用到的正则表达式:

var reg = ^[a-zA-Z0-9]{1,32}$;//1-32位因为字母、数字、不区分大小写
var reg = ^[a-zA-Z0-9_u4e00-u9fa5]{1,200}$;//1-200位字母、数字、下划线、中文,不区分大小写,也可以直接使用w
var reg = ^(w)+(.w+)*@(w)+((.w+)+)$;//匹配邮箱,例:www.139@139.com,<span style="font-family: Arial,Helvetica,sans-serif; font-size: 12px;">139@139.com都能验证通过</span>
var reg = ^[1][3578]d{9}$;//匹配手机号,1开头的,第二位为3、5、7、8的11位手机号
var reg = ^(((+?086)|(+?86)){1}-)?([0]?[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$;//匹配座机号,例:+086-024-97251111,<span style="font-family: Arial,sans-serif; font-size: 12px;">024-97251111,</span><span style="font-size: 12px; font-family: Arial,sans-serif;">97251111都能验证通过</span>
var reg = ^d{1,7}(.d{1,2})?$;//匹配小数点前7位,小数点后最多两位

后续不断更新....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读