正则表达式

正则表达式

正则表达式用来处理文本信息功能强大,学习正则表达是其实就是学习其语法规则:测试的软件是RegexBuddy,文末有响应的测试文本

一、正则表达式语法一:普通字符

    普通字符:数字、字母、下划线、汉字、没有特殊定义过的标点符号

    转义字符:

\n 代表换行符
\t 代表制表符
\\ 代表\本身
\{,\},\[,\],\(,\),\$,\^,\*,\+,\|,\.,\? 代表该字符本身

     记忆方法:第四行 六个括号+键盘Shit 4($)、 6(^)、 8(*与+)  还有三个|?.

二、正则表达式语法二:标准字符集

    标准字符集合:能够代表某个字符集合的表达式

    区分大小写:大写代表取反的意思

\d 代表0-9任意数字 d:digit 数字的意思
\w 代表a-z, A-Z, 0-9,_ 任意字符 w:word 字符的意思
\s 代表\n \t 等空格字符 s:space 空格的意思
. 代表任意字符(除了换行符)  

三、正则表达式语法三:自定义字符集

    自定义字符集合:[]括起来的字符串

    

[abc@] 匹配a或b或c或@字符
[^abc@] 匹配除a,b,c,@以外的任一字符
[a-f] 匹配a~f中的任一意字符
[^a-f1-4] 匹配a~f 1~4 以外的任一字符

       1、自定义字符中包含的特殊字符都失去其特殊意义,除了^(表示取反)和-(表示区间)

    2、自定义字符集中包含标准字符集(除了小数点外),则自定义字符集包含该标准字符集合

       [\d.\-+]将匹配:数字、小数点、+、-   : 这里的小数点不算标准字符集合,只代表小数点,-需要转义 + 正常表示

       [\w\s.\-+]将匹配:数字、大小写字母、空格、小数点、+、-   

四、正则表达式语法四:量词

    量词:修饰匹配次数的特殊符号

{m} 表达式出现m次
{m,} 表达式至少出现m次
{m,n} 表达式出现m到n次
+ 相当于{1,}
? 相当于{0,1}
* 相当于{0,}


    匹配次数中的贪婪模式(匹配字符越多越好,默认!)

    匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后再加上一个 "?" 号)

    这里的可以参考https://www.cnblogs.com/hahazexia/p/6001492.html

五、正则表达式语法五:零宽匹配

     字符边界:本组标记匹配的不是字符而是位置,符合某种条件的位置

 

^ 与字符串开始的地方匹配
$ 与字符串结束的地方匹配
\b 匹配一个单词的边界

     \b:表示匹配一个位置:这个位置不全是\w     意思就是这个位置全是\w 排除掉

      比如:^i    只会匹配字符串第一个字符i (这里这个文本表示一个字符串)

        i$    只会匹配字符串最后一个i

    

六、正则表达式语法六:选择符合分组

| 选择结构 左右两边或关系
()捕获组 1.()内是一个整体被修饰等2.()内的值会被单独保存起来3.引用是通过左括号来计数的
(?:expression) 当不需要保存()中的内容的时候,就用这个,减少内存消耗

  反向引用\nnn  例如\1 \2  表示引用第1个左括号中的内容    第2个左括号中的内容

    

 

七、正则表达式七:零宽断言

(?=exp) 断言自身出现的位置的后面能匹配表达式exp
(?<=exp) 断言自身出现的位置的前面能匹配表达式exp
(?!exp) 断言自身出现的位置的后面不能匹配表达式exp
(?<!exp) 断言自身出现的位置的前面不能匹配表达式exp

 

     gaoqi后面是非数字,1-4位小写字母后面是ing     当然不包括ing


 

 

 

 

i love you 
how do you dare do this to me gaoqi
gaoqi22 gaoqi dodo toto doto todo toto 
1232 4456 gaoqi22 gao1i@ gaoqiing doging gaming
i
View Code

 

posted @ 2021-05-12 22:56  臭猪  阅读(62)  评论(0编辑  收藏  举报