正则表达式简介

126 阅读1分钟

正则表达式是一种强大的文本处理工具,用于搜索、替换、或验证字符串模式。由于正则表达式的语法非常丰富,我将提供一个概览,介绍最常用的元素和构造。

字面量

  • 普通字符:大部分字符,如 ab1,都代表它们自己。

特殊字符

  • .:匹配除换行符之外的任何单个字符。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • {n}:匹配前面的子表达式恰好 n 次。
  • {n,}:匹配前面的子表达式至少 n 次。
  • {n,m}:匹配前面的子表达式至少 n 次,但不超过 m 次。
  • |:选择,匹配 | 前或后的子表达式。
  • \( \):将括号内的表达式定义为一个“组”(group),并且可以通过 \1\2 等引用它们。
  • [ ]:字符类,匹配括号内的任意字符。
  • [^ ]:否定的字符类,匹配不在括号内的任意字符。

转义字符

  • \:将其后的特殊字符转义为字面量,例如 \. 匹配字符 .

预定义字符类

  • \d:匹配任何数字,等价于 [0-9]
  • \D:匹配任何非数字字符,等价于 [^0-9]
  • \w:匹配任何字母数字字符,包括下划线,等价于 [A-Za-z0-9_]
  • \W:匹配任何非字母数字字符,等价于 [^A-Za-z0-9_]
  • \s:匹配任何空白字符,包括空格、制表符、换行符等。
  • \S:匹配任何非空白字符。

界定符

  • \b:匹配一个单词边界,即字与空格间的位置。
  • \B:匹配非单词边界。

标志(依赖于正则表达式引擎)

  • i:不区分大小写。
  • g:全局搜索。
  • m:多行模式。

示例

  • hello:匹配字符串 "hello"。
  • ^a:匹配所有以 'a' 开头的字符串。
  • n$:匹配所有以 'n' 结尾的字符串。
  • a.b:匹配 'a' 后面跟着任何字符,然后是 'b'。
  • a[bc]d:匹配 "abd" 或 "acd"。
  • a[^bc]d:匹配 "a" 后跟一个非 "b" 或 "c" 的字符,然后是 "d"。
  • \d{2,4}:匹配 2 到 4 位数字。

正则表达式的具体语法和功能可能略有不同,这取决于你使用的具体语言或工具(如 Perl、Python、JavaScript、Java 等)。每种环境都可能有自己的一些特定