正则表达式

1,元字符

^" :^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。 

   "$"  :$会匹配行或字符串的结尾

 "\b" :不会消耗任何字符只匹配一个位置

"\d": 匹配数字,

 "\w":匹配字母,数字,下划线.

 "\s":匹配空格 

".":匹配除了换行符以外的任何字符

"[abc]": 字符组  匹配包含括号内元素的字符 

  "\W"   匹配任意不是字母,数字,下划线 的字符

   "\S"   匹配任意不是空白符的字符

 "\D"  匹配任意非数字的字符

   "\B"  匹配不是单词开头或结束的位置

   "[^abc]"  匹配除了abc以外的任意字符

2,限定符

"*?"   重复任意次,但尽可能少重复 

"+?"  重复1次或更多次,但尽可能少重复

"??"  重复0次或1次,但尽可能少重复

"{n,m}?"  重复n到m次,但尽可能少重复

"{n,}?"    重复n次以上,但尽可能少重复

3,捕获分组

"(exp)"    匹配exp,并捕获文本到自动命名的组里

"(?<name>exp)"   匹配exp,并捕获文本到名称为name的组里

"(?:exp)"  匹配exp,不捕获匹配的文本,也不给此分组分配组号

以下为零宽断言

"(?=exp)"  匹配exp前面的位置

  如 "How are you doing" 正则"(?<txt>.+(?=ing))" 这里取ing前所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为"How are you do";

"(?<=exp)"  匹配exp后面的位置

  如 "How are you doing" 正则"(?<txt>(?<=How).+)" 这里取"How"之后所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为" are you doing";

"(?!exp)"  匹配后面跟的不是exp的位置

  如 "123abc" 正则 "\d{3}(?!\d)"匹配3位数字后非数字的结果

"(?<!exp)"  匹配前面不是exp的位置

  如 "abc123 " 正则 "(?<![0-9])123" 匹配"123"前面是非数字的结果也可写成"(?!<\d)123"

 

posted @ 2020-01-15 10:34  dingdangmao305  阅读(145)  评论(0编辑  收藏  举报