正则表达式¶
正则表达式(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+)*
正则表达式匹配的字符串的含义是什么?