简单了解正则表达式o(* ̄▽ ̄*)ブ

字符 含义
\n 换行符
\t 制表符
|\本身
^,$,\.等 本身
\d 0-9中任何一个数字
\w A-Z,a-z,0-9,_中任何一个
\s 空格、制表符、换行符等空白字符
. 匹配任何一个字符,如果要匹配包括“\n”在内所有字符,一般用[\s\S]

自定义字符集合

字符 含义
[a1#] a或1或#
[^a1] 除了a,1
[a-d] a-d中任意一个
[^A-B0-2] 除了A-B,0-2的任意字符

量词

字符 含义
{n} 表达式重复n次
{m,n} 表达式至少重复m次,最多重复n次
{m,} 表达式至少重复m次
? 匹配表达式0次或者一次,相当于{0,1}
+ 表达式至少出现1次,相当于{1,}
* 表达式不出现或出现任意次,相当于{0,}
  • 贪婪模式(匹配字符越多越好,默认)
  • 非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后加“?”)

字符边界

字符 含义
^ 字符串开始的地方匹配
$ 字符串结束的地方匹配
\b 匹配一个单词边界
  • 匹配的不是字符是位置
  • -b:前面的字符和后面的字符不全是\w

匹配模式

模式 描述
IGNORECASE 忽略大小写模式 - 匹配时忽略大小写
- 默认情况下,正则表达式区分大小写
SINGLELINE 单行模式 - 整个文本看作一个字符串,只有一个开头一个结尾
- 使“.”可以匹配包含换行符在内的任意字符
MULTILINE 多行模式 - 每行都是一个字符串
- 如果仅匹配字符串开始和结束位置可以使用\A和\Z

选择符和分组

表达式 分组
"中分线"分支结构 左右两边表达式之间或关系,匹配左边或右边
()捕获组 1. 在修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
2.取匹配结构的时候,括号中的表达式匹配到的内容可以被单独得到
3. 每一对括号会分配一个编号,使用()捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由正则表达式模式匹配的文本
(?:Expression)非捕获组 一些表达式中,不得不使用(),但有不需要保存()中子表达式匹配的内容,可以使用非捕获组来抵消()带来的副作用

反向引用(\nnn)

  • 每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号
  • 通过反向引用,可以对分组已捕获的字符串进行引用

预搜索(零宽断言)

  • 只进行子表达式的匹配,匹配内容不计入最终的匹配结果,零宽度
  • 这个位置应该符合某个条件。判断当前位置的前后字符,是否符合指定的条件,但不匹配前后的字符。是对位置的匹配
  • 匹配过程中,如果子表达式匹配到的是字符内容,而非位置,并被保存到最终的匹配结构中,那就认为这个子表达式是占有字符的;如果自表达式匹配的仅仅是位置,或者匹配的内容并不保存到最终的匹配结果中,那么就认为这个子表达式是零宽度的。占有字符还是零宽度,是针对匹配的内容是否保存到最终的匹配结构中而言的。
表达式 描述
(?=exp) 断言自身出现的位置的后面能匹配表达式exp
(?<=exp) 断言自身出现的位置的前面能匹配表达式exp
(?!exp) 断言此位置的后面不能匹配表达式exp
(? 断言此位置的前面不能匹配表达式exp

java中的使用

Pattern p = Pattern.complie(r,int);
Matcher m = p.matcher(str);

正则表达式了解一下基本的就好哇咔咔,网上已经有炒鸡多已经写好了的啊哈哈哈。所以,了解了解一下。(●'◡'●)

简单了解正则表达式o(* ̄▽ ̄*)ブ_第1张图片
常用正则表达式列表

你可能感兴趣的:(简单了解正则表达式o(* ̄▽ ̄*)ブ)