正则表达式

数量词(*, +, ?, {}, s)

  • abc* 匹配ab后有零个或多个为c的字符串
  • abc+ 匹配ab后有一个或多个为c的字符串
  • abc? 匹配ab后有零个或一个为c的字符串
  • abc{2} 匹配ab后有2个 c的字符串
  • abc{2,} 匹配ab后有2个 c或更多个c的字符串
  • abc{2,5} 匹配ab后跟2到5个c的字符串
  • a(bc)* 匹配a后面跟零个或多个重复的bc序列的字符串
  • a(bc){2,5} 匹配a后面跟2个到5个重复的bc序列的字符串

或运算符( |,[])

  • a(b|c) 匹配a后跟b或c的字符串 – >试试吧!
  • a[bc] 同上一情况

字符类(\d,\w,\s,.)

  • \d 匹配一个数字字符 – >试试吧!
  • \w 匹配单词字符(字母、数字或下划线) – >试试吧!
  • \s 匹配空白字符(包括制表符和换行符)
  • . 匹配任意字符 – >试试吧!

谨慎使用“.” 运算符,因为通常类或反义字符类(我们将在下面介绍)会更快更精确。\ d,\ w和\ s也分别用\ D,\ W和\ S表示它们的否定。例如,\ D将执行与\ d获得的相反匹配。

\D 匹配一个非数字字符 – >试试吧!

为了按字面意思理解,你必须使用反斜杠“\”来转义字符^.[$()|*+?{\,因为它们具有特殊含义。

\$\d 匹配一个数字前面有一个$的字符串 – >试试吧!

请注意,您还可以匹配不可打印的字符,如制表符\ t,换行符\ n,回车符\ r。

标志位

基础部分中,如何构建一个正则表达式还有一个基本概念:标志。

正则表达式通常以这种形式/abc /出现,其中搜索模式由两个斜杠字符/分隔。

我们可以指定一个带有这些值的标志(我们也可以将它们相互组合):

g(全局)在第一次匹配后不返回,从上一次匹配结束时重新开始后续搜索

m(多行)启用时,^和$将匹配这行的开头和结尾,而不是整个字符串。

i(不敏感)使整个表达式不区分大小写(例如/ aBc / i将匹配AbC)。