正则表达式基础语法学习笔记

个人学习记录,仅供参考

教程网站: https://www.runoob.com/regexp/regexp-syntax.html
语法:
	普通字符:
		[ABC] : 表示匹配括号中的所有字符
		[^ABC] : 表示匹配除A、B、C外的所有字符
		[A-Z] : 表示匹配A至Z的所有大写字母
		\d : 匹配数字
		\D : 匹配非负数
		. : 表示匹配除换行符(\n、\r)外的所有字符
		\s : 匹配所有空白符,包括换行
		\S : 匹配所有非空白符,包括换行
		\w : 匹配字母、数字及下划线,等价于[A-Za-z0-9_]
		\W : 匹配非字母、数字及下划线,等价于[^A-Za-z0-9]
	非打印字符:
		\cx : 表示匹配 CTRL + x 或 回车符
		\f : 表示匹配 换页符
		\n : 表示匹配一个换行符
		\r : 表示匹配一个回车符
		\t : 表示一个制表符
		\v : 表示一个垂直制表符
		\s : 匹配所有空白字符,等价于[\f\n\r\t\v]
		\S : 匹配所有非空白字符,等价于[^\f\n\r\t\v]
	特殊字符:
		^ : 匹配输入字符串的开始位置
		$ : 匹配输入字符串的结尾位置
		() : 标记子表达式的开始和结束
		* : 匹配前面的子表达式零次或多次
		+ : 匹配前面的子表达式一次或多次
		. : 匹配除换行符以为的所有单字符
		? : 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
		\ : 用作转义
		| : 两者间的一个选择,或的意思
	限定符: 用来指定正则表达式需要出现多少次匹配
		* : 匹配前面的子表达式零次或多次
		+ : 匹配前面的子表达式一次或多次
		? : 匹配前面的子表达式零次或一次
		{n} : 匹配前面的子表达式n次
		{n,} : 匹配前面的子表达式至少n次
		{n, m} : 匹配前面的子表达式至少n次最多m次
		注意: * 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字即最大匹配,在它们的后面加上一个 ? 就可以实现最小匹配
			eg: <h1>luogeng</h1>
			正则表达式为 <.*>则匹配到的是<h1>luogeng</h1>全文
			若正则表达式为<.*?>则匹配到的是<h1>和</h1>
	定位符:
		^ : 匹配输入字符串的开始
		& : 匹配输入字符串的结尾
		\b : 匹配一个单词的边界,\b在表达式左边则匹配左边界的,\b在表达式右边则匹配单词的右边
		\B : 非单词边界匹配,需要看\B在表达式左边还是右边,即在左边,不匹配左边界,在右边不匹配右边界,和\b恰好相反
			eg: 字符串abcde 表达式 \Babc 不能匹配到, 而 abc\B 则能匹配到, 表达式 \Bcde 能匹配到, 而cde\B 不能匹配到
	() : 表示选择时,选择项间用 | 分割, 也可表示分组,即分成数组,索引0对应的是整个字符串,索引1对应第一个匹配符(括号内),以此类推
		eg: 分组作用
			var str = "http://www.runoob.com:80/html/html-tutorial.html";
			var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
			arr = str.match(patt1);
			for (var i = 0; i < arr.length ; i++) {
    			console.log(arr[i]);
			}
			输出:
				http
				www.runoob.com
				80
				/html/html-tutorial.html

	?=、?<=、?!、?<! : 
		?= : exp1(?=exp2) 查找后面是exp2的exp1
			eg: luo(?=[\d])  匹配数字前面的luo
		?<= : (?<=exp2)exp1 查找前面是exp2的exp1
			eg: (?<=[\d])luo 匹配数字后面的luo
		?! : exp1(?!exp2) 查找后面不是exp2的exp1
			eg: luo(?![\d]) 匹配非数字前面的luo
		?<= : (?<!exp2)exp1 查找前面不是exp2的exp1
			eg: (?<![\d])luo 匹配非数字前面的luo

修饰符: i g m s
	i : 不区分大小写
	g : 全局匹配
	m : 多行匹配
	s : 特殊字符圆点 . 中包含换行符\n

运算符优先级: 
	\ : 转义字符
	()、(?:)、(?=)、(?!)、[] : 圆括号和方括号
	^、&、\b、\B、任意字符 : 定位符和顺序
	| :
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值