正则表达式语法详解(常见的正则表达式语法大全)

正则表达式(Regular Expression,简称Regex)是一种用于描述字符串模式的强大工具。

正则表达式可以用于搜索、替换和验证字符串。

图片[1]-正则表达式语法详解(常见的正则表达式语法大全)-不念博客

以下是一些常见的正则表达式语法:

字符匹配:

  • .:匹配任意单个字符,除了换行符(在某些实现中,可以通过设置标志来匹配换行符)。
  • \d:匹配任意数字字符,等价于[0-9]
  • \D:匹配任意非数字字符,等价于[^0-9]
  • \w:匹配任意单词字符(字母、数字和下划线),等价于[A-Za-z0-9_]
  • \W:匹配任意非单词字符,等价于[^A-Za-z0-9_]
  • \s:匹配任意空白字符(空格、制表符、换行符等)。
  • \S:匹配任意非空白字符。

字符集(Character Set):

  • [...]:匹配方括号内的任意字符。例如,[abc]匹配字符abc
  • [^...]:匹配不在方括号内的任意字符。例如,[^abc]匹配除abc以外的任意字符。

量词(Quantifiers):

  • *:匹配前面的字符或子表达式0次或多次。例如,ab*c匹配acabcabbc等。
  • +:匹配前面的字符或子表达式1次或多次。例如,ab+c匹配abcabbc等,但不匹配ac
  • ?:匹配前面的字符或子表达式0次或1次。例如,ab?c匹配acabc
  • {n}:匹配前面的字符或子表达式恰好n次。例如,a{3}匹配aaa
  • {n,}:匹配前面的字符或子表达式至少n次。例如,a{3,}匹配aaaaaaa等。
  • {n,m}:匹配前面的字符或子表达式至少n次,但不超过m次。例如,a{2,4}匹配aaaaaaaaa

定位符(Anchors):

  • ^:匹配字符串的开头。例如,^abc匹配以abc开头的字符串。
  • $:匹配字符串的结尾。例如,abc$匹配以abc结尾的字符串。
  • \b:匹配单词边界。例如,\bword\b匹配字符串中独立的单词word,而不匹配wordssubword等。
  • \B:匹配非单词边界。例如,\Bword\B只匹配wordssubword等单词的一部分。

分组(Grouping):

  • ( ):括号内的表达式作为一个分组,可以应用量词和捕获匹配结果。例如,(ab)+匹配ababab等。
  • (?: ):括号内的表达式作为一个非捕获分组,不捕获匹配结果。例如,(?:ab)+匹配ababab等,但不捕获匹配结果。
  • (?= ):正向预查,在括号内的表达式之前的位置匹配成功,但不包含预查部分。例如,abc(?=def)匹配字符串abcdef中的abc,但不包括def
  • (?! ):负向预查,在括号内的表达式之前的位置匹配失败。例如,abc(?!def)匹配不在def前的abc

反向引用(Backreferences):

  • \n:匹配前面第n个分组的捕获结果。例如,(a)b\1匹配字符串aba
  • 标志(Flags):用于修改正则表达式的行为。不同编程语言的正则表达式实现可能有所不同,但以下是一些常见的标志:
  • i:忽略大小写。
  • g:全局搜索,匹配字符串中的所有符合条件的部分,而不仅仅是第一个匹配。
  • m:多行模式,^$匹配每行的开头和结尾,而不仅仅是整个字符串的开头和结尾。
  • s:单行模式,.字符匹配换行符。

这些语法元素可以组合成复杂的正则表达式,以匹配和操作各种字符串模式。

请注意,不同编程语言和正则表达式库可能有一些差异和扩展,因此在实际应用中需要参考具体的文档和实现。

© 版权声明
THE END