什么是正则表达式
百度定义: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
简单的说就是对字符串的一种匹配规则。
举个栗子:当我们在各大网站登录的时候都会需要输入手机号,如果输入的不是手机号就会报错,那么怎么知道是不是手机号呢,就是通过了正则表达式的匹配来区分的。
如何使用正则表达式
在介绍如何使用之前,首先来推荐一个学习工具,https://regexr.com/
这个网址可以练习正则表达式的使用。
正则表达式的语法:
- . (点,可能看不太清)这个是通配符
可以作为任意字符,比如正则表达式为:李 . 则可以匹配到李四,李五等 - \w 匹配所有的阿拉伯数字、英文大小写字母和下划线,\W(大写W)匹配被 \w排除在外的字符
- \d只匹配数字,\D 是匹配所有不是数字的范围
- \s 匹配空白字符:空格、制表符、断行等 ,\S为 \s 的补集
- [ ] 在内部是一个范围,对外部表示一个字符,比如[abc] 可以匹配到字符串中所有的单个a单个b单个c,也可以使用[a-z]来表示a到z的所有字母,大写字母和数字和中文都可以来划定范围
- + 表示重复出现一次或多次,比如**a+**可以匹配到aa,aaa,aaaaa
- * 表示重复出现零次或多次,例如 a+[ !~. ]* 可以匹配到aaaa也可以匹配到aaaa!,或者aaaa~
- ? 表示重复出现零次或一次,
- { } 表示指定重复范围,例如 ab{1,5} 就是重复1到5次,会精确匹配到abbbbb
但是像abbbbbb有6个b就匹配不到。如果不限后面有多少个可以是写成 **{2,}**表示从第二个开始重复无数个都可以被匹配到
另外可以看出其实之前的 ?+* 其实都是 { } 的一个简写,比如?就是{0,1}的简写
+是{1,}的简写,*是 {0,}的简写。 - () 表示分组,小括号内的值可以被分为一组,分组的值可以被 $组号 取出 比如 (abc)def 则可以用 $1取去abc。
tips:
- \ 是转义字符如果想输入 . 则需要输入 \. 来表示。
- 还有一点中文如何来表示,是使用Unicode来表示可以在范围中使用,例如匹配所有中国字可以使用[\u4e00-\u9fa5]
扩充!
^ 表示正则表达式开始的位置
$ 表示正则表达式结束的位置
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
另外附上js中正则表达式的使用方法地址一份!!!!
https://blog.csdn.net/liusaint1992/article/details/73135814
好了这就是正则表达式的全部内容,希望这些可以帮助到大家!
(小声比比:整篇文章纯手打,而且涉及到好多转义字符,要是写的东西能帮到大家,请大家给我点个赞吧!谢谢啦)