正则表达式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


正则表达式

一、正则表达式是什么?

1.正则表达式的含义

其实就是模式匹配,也就是说,正则表达式就是那个模式,你的数据要符合这个模式!
正则表达式是一个描述字符模式的对象

2.为什么要用正则表达式

简洁的代码,严谨的应用

3.正则表达式的两种定义风格

1> perl风格

	 	var reg = /表达式/附加参数

2> 构造函数方式

		var reg = new RegExp('表达式','附加参数');

4.附加参数

1> i 忽略大小写 (ignore)
2> g 全局匹配 (global)

二、使用步骤

1.字符串中配合正则表达式使用的方法

1> match()
字符串.match(正则表达式)
返回值:匹配到的结果
2> search()
字符串.search(正则表达式);
查找符合正则表达式的匹配值,并返回第一次匹配到的索引值;
注意:search方法对大小写敏感,当你在正则最后写‘i’时,他将忽略大小写问题。否则他严格匹配大小写;
返回值:如果匹配上,则返回第一次出现的索引位置,如果未匹配上,返回-1;
3> replace()
字符串.replace(正则表达, 你要替换成的值(回调函数/字符串));
替换匹配上的内容为你要替换成的值, 返回替换完的结果
回调函数:
字符串.replace(正则表达式,function(str){
return ‘值’;
})
参数str: 是每一次的匹配结果
return结果: 是你要替换成的值

2.正则表达中的一些符号

[] 一个中括号代表一个字符
[abc] 配置a或者b或者c
[a-z] 匹配a到z之间的任何字母 [a-e]:a/b/c/d/e
[A-Z] 匹配大写
[a-zA-Z] 匹配所有的大小写字母
[0-9] 匹配0到9之间的所有数字 [0-5]: 0到5
[a-z_] 匹配a到z或者下划线
[^a-z] 匹配除了a到z之外所有的字符
[\u4e00-\u9fa5] 匹配所有的汉字

3.元字符

代码说明
/…/代表一个模式的开始和结束
^匹配字符串的开始位置
$匹配字符串的结束位置
\s任何空白字符
\S任何非空白字符
\d匹配一个数字字符,等价于[0-9]
\D除了数字之外的任何字符,等价于[^0-9]
\w匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
\W任何非单字字符,等价于[^a-zA-z0-9_]
.除了换行符之外的任意字符
\b匹配一个单词的边界
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

4.量词

*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

5.正则表达式对象的方法

	var res = 正则对象.test(数据);
	返回值: true / false

其他语法

代码/语法说明
\a报警字符(打印它的效果是电脑嘀一声)
\b通常是单词分界位置,但如果在字符类里使用代表退格
\t制表符,Tab
\r回车
\v竖向制表符
\f换页符
\n换行符
\eEscape
\0nnASCII代码中八进制代码为nn的字符
\xnnASCII代码中十六进制代码为nn的字符
\unnnnUnicode代码中十六进制代码为nnnn的字符
\cNASCII控制字符。比如\cC代表Ctrl+C
\A字符串开头(类似^,但不受处理多行选项的影响)
\Z字符串结尾或行尾(不受处理多行选项的影响)
\z字符串结尾(类似$,但不受处理多行选项的影响)
\G当前搜索的开头
\p{name}Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp)贪婪子表达式
(?-exp)平衡组
(?im-nsx:exp)在子表达式exp中改变处理选项
(?im-nsx)为表达式后面的部分改变处理选项
(?(exp)yesno)
(?(exp)yes)同上,只是使用空表达式作为no
(?(name)yesno)
(?(name)yes)同上,只是使用空表达式作为no

总结

以上就是正则表达式的介绍,当然其中还有好多没有表达出来比如:平衡组、递归匹配、负向零宽断言等知识没有讲,这几个我还没有理解,到后面可能就会填补上。

好了,就这样吧!

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值