正则表达式匹配详解:实例与技巧 – wiki大全


正则表达式匹配详解:实例与技巧

正则表达式(Regular Expression,常简写为 regex 或 regexp)是计算机科学中的一个强大工具。它是一种用于描述、匹配和操作字符串的模式。无论你是在处理用户输入、解析日志文件,还是在海量文本中查找特定信息,正则表达式都能极大地提高你的工作效率。

本文将从基础语法讲起,逐步深入到高级技巧,并通过丰富的实例让你彻底掌握正则表达式的精髓。

1. 什么是正则表达式?

简单来说,正则表达式就是一个“规则字符串”,它定义了你想要查找的文本模式。

例如,正则表达式 \d+ 可以匹配一个或多个数字。在文本 “我的电话是 13800138000” 中,它就能成功匹配到 “13800138000”。

2. 基础语法与核心元字符

元字符是正则表达式中具有特殊意义的字符,它们是构建复杂模式的基础。

2.1 常用字符匹配

元字符 描述 示例 匹配
. 匹配除换行符 \n 之外的任意单个字符 a.c abc, aec, a_c
\d 匹配任意一个数字 (等同于 [0-9]) \d{3} 123, 987
\D 匹配任意一个非数字字符 \D a, _,
\w 匹配字母、数字或下划线 (等同于 [a-zA-Z0-9_]) \w+ hello_world123
\W 匹配非字母、数字或下划线的字符 \W !, @,
\s 匹配任意空白符(空格、制表符、换行符等) hello\sworld hello world
\S 匹配任意非空白符 \S+ user-123
[...] 匹配方括号中包含的任意一个字符 [aeiou] a, e
[^...] 匹配不在方括号中包含的任意一个字符 (取反) [^0-9] a, b (非数字)

2.2 量词(Quantifiers)

量词用于指定一个模式需要匹配的次数。

量词 描述 示例 匹配
* 匹配前一个元素 0 次或多次 go*gle ggle, google, gooogle
+ 匹配前一个元素 1 次或多次 go+gle gogle, google
? 匹配前一个元素 0 次或 1 次 colou?r color, colour
{n} 匹配前一个元素恰好 n 次 \d{4} 2024
{n,} 匹配前一个元素至少 n 次 \d{2,} 12, 123, 1234
{n,m} 匹配前一个元素至少 n 次,至多 m 次 \w{3,5} abc, abcd, abcde

2.3 边界匹配(Anchors)

边界匹配用于指定模式在字符串中的位置。

边界符 描述 示例 匹配
^ 匹配字符串的开始 ^start start of the line 中的 start
$ 匹配字符串的结束 end$ the line is end 中的 end
\b 匹配单词边界(单词与空格/标点之间) \bcat\b a cat 中的 cat (不匹配 category)
\B 匹配
滚动至顶部