标签:字符 匹配 符号 正则表达式 举例 表达式
前言
正则表达式,在搜索和操作文本字符串,特别是在处理文本文件时,非常强大。一行正则表达式可以很容易地取代几十行编程代码。所有脚本语言(如Perl、Python、PHP和JavaScript)、通用编程语言(如Java)甚至用于搜索文本的Word等文字处理器都支持Regex。开始使用正则表达式可能并不容易,因为它的极客的语法,但它肯定是值得您投入的时间。
正则表达式验证网站链接:https://regex101.com/
一个典型的例子
用户名长度在2到17个字符之间的QQ邮箱匹配 ^[A-Za-z0-9_-]{2,17}@qq\.com$
正则表达式符号介绍
Repeaters ( *, +, and { } ) (重复字符)
符号 | 说明 | 表达式应用 | 匹配字符举例 |
---|
* | 匹配前面的字符(或字符集)0次或多次(直到无限次) | ab*c | ac, abc, abbc, abbbc |
+ | 重复前面的字符(或字符集)至少一次或多次(最多无限次) | ab+c | abc, abbc, abbbc |
{ } | 重复前面的字符(或字符集)的次数与括号内的值一样多 | a{2} | aa |
Wildcard (通配符)
符号 | 说明 | 表达式应用 | 匹配字符举例 |
---|
. | 通配符:点符号可以代替任何其他符号 | .a | 3a,aa、_a |
Optional character ( ? ) (选择符)
符号 | 说明 | 表达式应用 | 匹配字符举例 |
---|
? | 可选择符:前面的字符可能存在也可能不存在于要匹配的字符串中 | docx? | doc、docx |
The caret ( ^ ) symbol(开始符)
符号 | 说明 | 表达式应用 | 匹配字符举例 |
---|
^ | 匹配必须从字符串或行的开头开始 | ^\d{3} | 901-333 |
The dollar ( $ ) symbol (结束符)
符号 | 说明 | 表达式应用 | 匹配字符举例 |
---|
$ | 匹配必须发生在字符串的末尾,或者在行或字符串结尾处的\n之前 | -\d{3}$ | 901-333 |
Character Classes (字符类)
符号 | 描述 |
---|
\s | 匹配任何空白字符,如空格和制表符 |
\S | 匹配任何非空白字符 |
\d | 匹配任何数字字符 |
\D | 匹配任何非数字字符 |
\w | 匹配任何单词字符 |
\W | 匹配任何单词边界(这将包括空格,破折号,逗号,分号等) |
[set_of_characters] | 匹配set_of_characters中的任何单个字符。默认情况下,匹配区分大小写。 |
[first-last] Character range (字符范围)
符号 | 描述 | 表达式 |
---|
[first-last] | 在a-z的范围内匹配其中一个字符 | [a-zA-Z] |
The Escape Symbol ( \ ) (转义字符)
符号 | 描述 | 表达式应用 | 匹配字符举例 |
---|
\ | 如果要匹配实际的'+','.'等字符,请在该字符之前添加反斜杠(\)。这将告诉计算机将以下字符视为搜索字符,并将其视为匹配模式。 | \d\+\d | 1+2 |
Grouping Characters ( ) (字符组)
符号 | 描述 | 表达式应用 | 匹配字符举例 |
---|
() | 正则表达式的一组不同符号可以组合在一起作为一个单元,并表现为一个块,为此,您需要将正则表达式括在括号()中。 | (abc)\d+ | abc1、abc123 |
Vertical Bar ( | )
符号 | 描述 | 应用表达式 | 匹配字符举例 |
---|
| | 匹配由竖线(|)字符分隔的任意一个元素。 | (a|b|c)gg | agg、bgg、cgg |
\number
符号 | 描述 | 应用表达式 | 匹配字符举例 |
---|
\n | n为具体数字,允许先前匹配的子表达式(捕获或括在圆括号中的表达式)随后在同一正则表达式中被识别。\n表示第n个括号内的组将在当前位置重复 | [a-z])\1 | geek |
标签:字符,
匹配,
符号,
正则表达式,
举例,
表达式
From: https://blog.csdn.net/weixin_42105599/article/details/140448486