正则表达式 -----元字符

一、定义:正则表达式,就是一种描述字符串结构模式的形式化表达方法,是强大、便捷、高效的文本处理工具。
     正则表达式由两种字符构成,  *,+,? 等一些 称为  元字符, 其他为  文字,

二、入门字符认识
1. 行起始和结束:
   ^ 代表一行的开始, $代表结束,匹配的是一个位置,而不是具体的文本。  

   例如:^cat  表示只寻找行首的cat,   cat$  只寻找位于行末的cat,  例如:以scat 结尾的行
   实际理解 ^cat 匹配的是以c作为一行的第一个字符, a作为一行的第二个字符,以此类推。
   举例:^$  匹配行开头,然后就是行末尾,即匹配空行      ^cat$ 匹配只含cat 的行

2.匹配若干个字符  [ ···] ----字符组 ,找到一个目标字符
    gr[ea]y : 先找到一个g, 跟着要给r, 然后是一个a 或者e最后是一个y, 用来查找字符串
    [123456]: 匹配1到6中的任意一个数字。
   “-”:连字符:表示一个范围, <H[1-6]>  与   <H[123456]> 等价,在字符组内部,连字符才是元                        字 符,不能出现在开头,否则只是个普通字符
   <H[-1-6],表示匹配  <H[-或123456中任意一个字符]
    多重范围:[123456789abcdefABCDEF]  写作 [0-9a-fA-F]  或者 [ A-Fa-f0-9] 顺序无所谓,或者                    结合字符 [0-9A-Z_!.?],  "?"  "."此时出现在字符组中,只是普通的字符
                
 3.排除型字符组:[^···] ---- 匹配任何未列出的字符。
     [^1-6]: 匹配除了1到6以外的任何字符。列出的是不希望匹配的字符,只能存在于 [  之后的第一                 个位置,存在于其中只是个普通字符,用来匹配,参考 2
    q[^u] ; 匹配q后面的字母不是u。  raq 不能匹配到,排除q 处在行尾的情况,也就是说必须是要                 有个字符的情况  
    "[^"]*" : 用来匹配引号内的字符串,*代表任意个 


4. “.”匹配任意字:元字符 "."
     
       03[-./]76  匹配到03-76 或者03.76 或者03/76  ,在字符组括号中不是元字符,作为普通字符
       03.76 :. 号匹配任意字符, 范围更大,但是不精确
         <.*> : 先匹配一个 < ,然后是任意多个任意字符,然后是>, 结果是匹配任意长度的在<> 中的任意字符串。
      <a*> : 表示匹配任意个a    " "没有a 也可匹配, aa   aaaaaaa
      <a.*>: 表示匹配任意以a开头的字符串
      连字符“ -”, 在字符组括号中的开头时不作为元字符,在字符中间时才表示范围

5.多选结构 :可以匹配任意长度的文本或者表达式  "|"
   boq|edc :匹配其中任意一个表达式 boq或者edc    例如 gr(a|e)y
 放在字符组[ ]中是只是一个普通字符。gr[a|e]y     gray, grey, gr|y

6.单词分界符:“\<”和“\>" 匹配单词分界的位置,类似单词版本的^ $
       \<cat\> 匹配以cat开头和结束的单词

7.可选项元素  ?
  (july | jul)-->    (july?)  :  ?只匹配前面一个字符。匹配次数上限为1 ,下限为0
  (4th | 4)-->    4(th)?   : 用括号将th作为一个整体。 
  
8 .重复出现 “+”, “*”  作用于符号前面紧临的字符,表示匹配多个改字符
     “·*”:表示出现任意多个空格,没有也能匹配到  “·”是空格符    没有次数数上限和下限
     “·+”:表示匹配任意多个空格,但是不能没有,至少有一个空格出现    次数下限为1, 上限没有
       \>[A-Za-z]+\>  : 匹配任意单词

8.1 规定出现的次数 { } 区间量词,  {3,12} 规定能够容许的重现次数在3到12之间。
\>[A-Za-z]{3,12}\> : 匹配个数为3到12个之间的单词。  用区间代替 * + ?


9. 元字符序列  “\1”, "\2", "\3"  分别按从左到右的顺序匹配括号中的表达式内容
     ([a-z])([0-9])\1\2    \1 代表[a-z] 匹配的内容, \2 代表[ 0-9] 匹配的内容。
     

10. 转义字符 "\"     它作用的字符会失去特殊含义,成为普通字符。注:在字符组  [ ]  内部无效
      \([ a-zA-Z]+\)  :匹配 任意单词加上()  例如  (very)   括号前的\ 消除了开闭括号的特殊意义。       

    
 
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值