正则表达式学习记录

正则表达式

测试工具 regexBuddy

普通字符:

  • 字母,数字,汉字,下划线,以及没有特殊定义的标点符号

转移字符

\n换行符 \t制表符 ^$.(){}?+*|[]这些字符都需要转义

标准字符集合

大写表示取反

  • \d:0~9任意一个数字
  • \w:任意一个字母,数字,下划线。即AZ,az,0~9,_
  • \s: 匹配任意一个空格,制表符,换行符等空白字符
  • . : 匹配除换行符外的任意一个字符
    如果要匹配包括换行符在内的任意一个字符使用[\s\S]

自定义字符集合

[]括号匹配方式,能够匹配括号内的任意一个字符,或的关系

  • ^:方括号里面是取反的意思,[^a3c]:匹配除了a,3,c之外任意一个字符

  • :匹配一个集合内的任意一个字符,如:[f-k]:匹配从f到k的任意一个字符
    [^A-F0-3]:匹配A~F,0~3之外的任意一个字符

[]中除了^,-之外的特殊字符都代表字符本身,成为普通字符。

标准字符集合在[]中仍然是代表其集合,.变成普通字符,如:[\d.-+]:匹配0~9任意数字 . + -

量词

  • 1,量词只作用于前一个表达式,如\d\d{3}:匹配任意四个数字,(\d\d){3}:匹配任意6位数字

  • 2,默认贪婪模式,匹配越多越好,在{}后加个?,变成非贪婪模式,匹配越少越好

	{n}:表达式重复n次,
	{m,n}:表达式至少重复m次,最多重复n次
	{m,}:表达式至少重复m次
	?:匹配表达式0次或者1次,相当于{0,1}
	+:相当于{1,}
	*:相当于{0,}

字符边界:

匹配符合某种条件的位置而不是字符,具有零宽属性

  • ^:匹配字符串开始的位置
  • $:匹配字符串结尾的位置
  • \b:匹配一个字符边界,字符前面或者后面不全是\w

匹配模式:

  • IGNORECASE:忽略大小写模式
  • SINGLELINE:单行模式
  • MULTILINE:多行模式 若想匹配最开头和最后结尾使用\A \Z

选择符和分组

  • |:左右两边表达式之间"或"的关系,匹配左边或者右边
  • ():捕获组。以左边括号顺序为捕获组排序,通过反向引用可以直接引用捕获组内容。$1,$2,$3…
    由于反向引用会在内存中保存匹配的字符串,如果字符串太多影响效率,可以在左括号后面加?:设置成非捕获组,提高效率
    如:(?:[a-z]{2}):匹配到的两个字符不会保存在内存中

预搜索[零宽断言][环视]

  • (?=exp):断言自身位置的后面能匹配表达式exp
  • (?<=exp):断言自身位置的前面能匹配表达式exp
  • (?!exp):断言自身位置的后面不能匹配表达式exp
  • (?<!exp):断言自身位置的前面不能匹配表达式exp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值