正则表达式学习总结

正则表达式的书写步骤:

1、观察要替换的文本内容,抽出合适的一句赋值给 $pattern,选择要替换的部分字段,将其更改为 (.*) ;

2、将所选内容即 $pattern 里的特殊符号转义加 / ;


3、注意解决里面的空格问题,使用 /s*或/s+,注意区别如下:

      *    号匹配 0 个或多个的数量限定符
      +   号 匹配 1 个或多个的数量限定符

4、其他无用字符不用管。



-----------------------------------------------------------------------------------------------------------

/        有数种用途的通用转义符
^        断言目标的开头(或在多行模式下行的开头,即紧随一换行符之后)
$        断言目标的结尾(或在多行模式下行的结尾,即紧随一换行符之前)
.        匹配除了换行符外的任意一个字符(默认情况下)
[        字符类定义开始
]        字符类定义结束
|        开始一个多选一的分支
(        子模式开始
)        子模式结束
?        扩展 ( 的含义,也是 0 或 1 数量限定符,以及数量限定符最小值
*        匹配 0 个或多个的数量限定符
+        匹配 1 个或多个的数量限定符

{        最少/最多数量限定开始
}        最少/最多数量限定结束

[        字符类模式中方括号内的部分称为“字符类”。字符类中可用的元字符为:
/        通用转义字符
^        排除字符类,但仅当其为第一个字符时有效
-        指出字符范围
]        结束字符类

以下说明了每一个元字符的用法。

反斜线(/)
反斜线第一个用法:转义可见方式编码
"*" => "/*" "/" => "//"

反斜线第二个用法:转义不可见方式编码

/a        alarm,即 BEL 字符(0x07)
/cx        "control-x",其中 x 是任意字符
/e        escape(0x1B)
/f        换页符 formfeed(0x0C)
/n        换行符 newline(0x0A)
/r        回车符 carriage return(0x0D)
/t        制表符 tab(0x09)
/xhh        十六进制代码为 hh 的字符
/ddd        八进制代码为 ddd 的字符,或 backreference

反斜线第三个用法是指定通用字符类型:

/d        任一十进制数字
/D        任一非十进制数的字符
/s        任一空白字符
/S        任一非空白字符
/w        任一“字”的字符
/W        任一“非字”的字符

反斜线第四个用法是某些简单的断言

/b        字分界线
/B        非字分界线
/A        目标的开头(独立于多行模式)
/Z        目标的结尾或位于结尾的换行符前(独立于多行模式)
/z        目标的结尾(独立于多行模式)
/G        目标中的第一个匹配位置

音调符(^)和美元符($)
句号(.)
方括号([])
竖线(|)                竖线字符用来分隔多选一模式

子模式

子模式由圆括号定界,可以嵌套。将模式中的一部分标记为子模式可以:

1. 将多选一的分支局部化。例如
        模式: cat(aract|erpillar|) 表示 "cat","cataract" 或 "caterpillar"
2. 将子模式设定为捕获子模式
        例如,如果将字符串 "the red king" 来和模式the ((red|white) (king|queen))进行匹配,捕获的子串为"red king","red"以及"king"并被计为1,2和3
3.Single-character quantifiers
    表格 3. Single-character quantifiers
     * equivalent to {0,}
     + equivalent to {1,}
     ? equivalent to {0,1}

      字符簇 含义[[:alpha:]] 任何字母[[:digit:]] 任何数字[[:alnum:]] 任何字母和数字[[:space:]] 任何白字符[[:upper:]] 任何大写字母[[:lower:]] 任何小写字母[[:punct:]] 任何标点符号[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值