跳转至

正则表达式

正则表达式(Regex)是描述文本模式的工具,用于字符串匹配、搜索和替换。它由字符和特殊符号组成,形成匹配文本的模式。正则表达式在编程和文本处理中非常强大。

下面是计算机程序中一些常见的正则表达式符号及其含义:

符号 含义
. 匹配除换行符以外的任何字符
* 匹配前一个字符的零次或多次出现
+ 匹配前一个字符的一次或多次出现
? 匹配前一个字符的零次或一次出现
[] 定义一个字符类,匹配括号内的任何一个字符
[^] 否定字符类,匹配不在括号内的任何一个字符
() 创建一个子表达式,并捕获匹配的部分
| 或操作,匹配两边任一表达式
{n} 匹配前一个字符恰好 n 次
{n,} 匹配前一个字符至少 n 次
{n,m} 匹配前一个字符至少 n 次,但不超过 m 次
\ 转义字符,用于匹配特殊字符
^ 锚点,匹配字符串的开头
$ 锚点,匹配字符串的结尾
\d 匹配任何数字字符
\D 匹配任何非数字字符
\w 匹配任何字母、数字或下划线字符
\W 匹配任何非字母、非数字、非下划线字符
\s 匹配任何空白字符(空格、制表符、换行等)
\S 匹配任何非空白字符

这些符号允许你创建复杂的 pattern,用于匹配和操作文本中的字符串。不同的编程语言和工具可能会略有不同,但基本的正则表达式符号通常是通用的。值得注意的是,我们实验中所使用的 flex 由于某些历史原因,并不支持\s\S这两个符号,所以在实验中请使用其他方法来代替。

这是一个正则表达式在线匹配网站(https://c.runoob.com/front-end/854/),你可以在该网站创建相关正则 pattern 进行匹配,以熟悉计算机程序中的正则表达式符号。

思考题

  • \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 正则表达式匹配的字符串的含义是什么?