欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

初步学习正则表达式

程序员文章站 2022-05-11 10:28:47
目录 分隔符 字符类和类型 重复 子表达式 子表达式计数 定位到字符串的开始或末尾 分支 匹配特殊字符 特殊字符含义 分隔符 正则表达式必须包含在一对分隔符中。可以选择任何非字母,数字,"\" 或空格的字符作为分隔符。字符串的开始和结束必须有匹配的分隔符。 最常用的分隔符是"/"。 如匹配"shop ......

 

目录

 

分隔符

字符类和类型

重复

子表达式

子表达式计数

定位到字符串的开始或末尾

分支

匹配特殊字符

特殊字符含义


分隔符

  • 正则表达式必须包含在一对分隔符中。可以选择任何非字母,数字,"\" 或空格的字符作为分隔符。字符串的开始和结束必须有匹配的分隔符。
  • 最常用的分隔符是"/"。 如匹配"shop": /shop/
  • 如果要在正则表达式中匹配字符"/",需要使用"\"来转义"/"。如匹配"http://": /http:\/\//

字符类和类型

  • 可以用字符"."作为匹配除换行符(\n)之外任何字符的通配符。如:/.at/ 可以匹配“cat”,“sat”,“mat”等,通常这种通配符的匹配适用于操作系统的文件名匹配。
  • /[a-z]at/ 表示第一个字符是a到z之间的字符,后面匹配at;任何[ ]中的内容都是一个字符类,也就是说方括号内的表达式只匹配一个字符。
  • /[a-za-z]/ 表示匹配大小写的任何字符。
  • /[^a-z]/ 用来匹配任何不在a和z之间的字符。当 ^ 符号在 [ ] 中时,表示否的意思。

重复

  • "*"表示这个模式可以重复出现0次或多次。
  • "+"表示这个模式可以重复出现1次或多次。
  •  "?" 表示这个模式可以重复出现1次或0次。
  • /[[:alnum:]]+/ 表示至少有一个字母字符。

子表达式

  • 通常,可以将一个表达式分隔为几个子表达式,如:/(very)*large/ 表示very可以重复出现0次或多次,可以匹配“large”,“very large”,“very very large”等。

子表达式计数

  • { } 中使用数字表达式来指定内容允许重复的次数。
  • /(very){3}/ 表示very重复3次
  • /(very){1,3}/ 表示very重复1~3次
  • /(very){2, }/ 表示最少要重复2次

定位到字符串的开始或末尾

  • ^ 用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始处。
  • $ 用于正则表达式的末尾,表示子字符串必须出现在被搜索字符串的末尾。
  • /^bob/ 表示要在开始处匹配 bob - /com$/ 表示要以com结束

分支

  •  | 在正则表达式中表示模式选择。
  • /com|edu|net/ 表示匹配com 或edu 或net

匹配特殊字符

  • 如果要匹配一个特殊字符,如“.”,“{”,“$”,就必须在它们前面加一个反斜杠“\”。
  • 如果要匹配一个反斜杠“\”,则必须用两个反斜杠“\\”来表示。
  • 在php中,必须使用单引号来引用正则表达式模式。使用双引号引用的正则表达式将带来一些不必要的复杂性。

特殊字符含义

在pcre正则表达式中,用于方括号外面的特殊字符
字符 意义 字符 意义
\ 转义字符 ) 子模式的结束
^ 在字符串开始匹配 * 重复0次或更多次
$ 在字符串末尾匹配 + 重复一次或更多次
. 匹配除换行符\n之外的字符 { 最小/最大量记号的开始
| 选择分支的开始(或) } 最小/最大量记号的结束
( 子模式的开始 ? 标记一个子模式为可选的
在pcre正则表达式中,用于方括号里面的特殊字符
字符 意义
\ 转义字符
^ 非,仅用在开始位置
- 用于指定字符范