正则表达式 分享链接
匹配成功后会高亮显示一个匹配结果,可以按 TAB 键在多个的匹配结果之间进行切换。文本框会记忆最后一次输入的文本。 输入完成后可直接按回车键进行匹配。文本框会记忆最后一次输入的正则表达式。 勾选此项后,可以理解为把原始文本按换行符分隔成多个字符串,起始符 ^ 和结束符 $ 匹配每一个字符串的开始和结束。否则起始符 ^ 和结束符 $ 匹配整个文本的开始和结束。对应修饰符 m。 符号 . 默认不匹配回车符和换行符,勾选此项后则符号 . 也匹配回车符和换行符。对应修饰符 s。
遇到的问题
正则表达式是查找匹配字符中的强大手段,正则表达式对于处理字符串的重要性甚至可以理解为 SQL 语句对操作数据库的重要性。而且正则表达式是行业标准,适用于任何语言。
. | 匹配任意单个字符,默认不包括回车符\r 和换行符\n ,除非使用了修饰符s |
[\s\S] | 匹配任意单个字符,包括回车符和换行符 |
\d 或 [0-9] | 匹配任意数字 |
\D | 匹配任意一个不是数字的字符,与\d 相反,也可以写作[^\d] 或[^0-9] |
[a-z] | 匹配任意小写英文字符 |
[A-Z] | 匹配任意大写英文字符 |
\w | 匹配任意阿拉伯字母,数字和下划线, 相当于[0-9a-zA-Z_] |
\W | 与\w 相反,相当于 [^0-9a-zA-Z_] |
\s | 匹配空白字符,包括空格符,制表符,换行符,换页符和其他空格字符 |
\S | 匹配一个非空白符,与\s 相反 |
使用方括号[
和]
包围起来表示字符集合,在字符集合中特殊字符可以不使用反斜杠\
进行转义,除了[
,]
和-
。
[abc] | 字符组,表示匹配集合中的任意一个字符。 |
- | 表示区间,如`[a-z]`表示匹配所有英文字母,`[0-9]`表示匹配所有数字 如果要在字符集合中匹配中横线,可以使用`\`进行转义,也可以放在字符集合的最后,如`[a-z0-9_-]` |
[^abc] | 反义字符组,匹配不是集合中字符的一个字符,可以用`-`来指定范围。例如`[^\d]`表示所有不含数字 |
[a-z^ou] | 混合用法,表示匹配字母a-z 但不包括字母`o`和`u` |
? | 匹配 0 次或 1 次,表示有或者没有 |
+ | 重复一次或多次,即至少一次 |
* | 重复 0 次或多次 |
{n} | 重复 n 次 |
{m,n} | 重复最少 m 次,最多 n 次 |
{m,} | 重复最少 m 次 |
( ) | 匹配组在匹配到结果时可以直接通过索引得到相应的捕获结果 |
| | 表示“或”,如(hello|hi) 匹配hello >或hi 都可以 |
^ | 不在[ ] 中时,匹配字符串每行的开始 |
$ | 匹配字符串每行的结束 |
\b | 匹配零宽单词边界,如/[a-z]+\b/ 匹配字符串"Hello World" ,得到Hello |
\B | 匹配非零宽单词边界,如/[a-z]+\B 匹配字符串`"Hello World" ,得到Hell |
? | 在重复符号+ 后面加上问号? 表示非贪婪匹配,如\d+? ,匹配结果返回尽可能少的字符,否则返回尽可能多的字符 |
\s | 匹配任意空白字符 |
匹配空格 | |
\t | 匹配一个水平制表符 |
\r | 匹配一个回车符 |
\n | 匹配一个换行符 |
\v | 匹配一个垂直制表符 |
\ | 转义符号 |
\. | 匹配符号 . |
\* | 匹配符号 * |
\+ | 匹配符号 + |
\? | 匹配符号 ? |
\^ | 匹配符号 ^ |
\$ | 匹配符号 $ |
\| | 匹配符号 | |
\( 和 \) | 匹配符号 ( 和 ) |
\[ 和 \] | 匹配符号 [ 和 ] |
\{ 和 \} | 匹配符号 { 和 } |
\\ | 匹配符号 \ |
断言用于查找匹配的前面的前面或后面是或者不是指定的字符或匹配,非常有用。“零宽”表示指定的匹配不返回;“正向”表“肯定”、“是”,“负向”表“否定”、“否”;“先行”指从左向右查找匹配,也可以理解是指定要匹配结果右侧的字符,“后行”是要匹配结果左侧是或者不是指定的字符。
(?=pattern) | 零宽正向先行断言,设定指定匹配后面有哪些字符 |
(?!pattern) | 零宽负向先行断言,设定指定匹配后面没有哪些字符 |
(?<=pattern) | 零宽正向后行断言,设定指定匹配前面有哪些字符 |
(?<!pattern) | 零宽负向后行断言,设定指定匹配前面没有哪些字符 |
(?:pattern) | 非捕获组,表示匹配但不在结果集中返回 |
参考链接