正则表达式

限定符

?

eg:used?表示d可有可无,即它也可以匹配use

*

eg:ab*c表示b可以出现零次或多次,即它也可以匹配acabcabbc……

+

eg:ab+c表示b可以出现一次或多次,即它也可以匹配abcabbc……

{...}

eg:ab{6}c表示b在中间出现 \(6\) 次,即它可以匹配abbbbbbc

eg:ab{2,6}c表示b在中间出现 \(2\sim6\) 次,即它可以匹配abbcabbbbbc……

eg:ab{2,}c表示b在中间出现 \(2\) 次以上,即它可以匹配abbcabbbc……

\(\star\) 多次匹配:用()修饰。

  • eg:(ab)+可以匹配多次ab的出现。

“或”运算

|

eg:a (cat|dog)可以匹配a cat或者a dog。注意括号不能少。

字符类

[...]

eg:[abc]+表示匹配的字符只能取自abc之间。

\(\star\) 也可以在中括号里表示范围。

  • eg:[a-zA-Z]表示匹配所有英文字符。

^

eg[^0-9]表示匹配所有的非数字字符(包括换行符)。

元字符

\d数字字符。

\w单词字符,即所有的英文字符、数字加上下划线。

\s空白符,同时包含空格、Tab 字符以及换行符。

\D非数字字符。

\W非单词字符。

\S非空白字符。

.任意字符,但不包含换行符。

^只匹配行首的字符。eg:^a只匹配行首的a

$只匹配行尾的字符。eg:a$只匹配行尾的a

贪婪与懒惰匹配

默认:Greedy Match。

使用.+?将其变成 Lazy Match。

eg:文本串:<span><b>TEST</b></span>

  • 直接<.+>匹配:所有字符全部匹配。
  • <.+?>匹配:分开匹配<span><b></b></span>

补充

\b表示单词边界。收尾都可以加。

\.转义。

参考

https://www.bilibili.com/video/BV1da4y1p7iZ

posted @ 2025-09-16 19:42  csxsi  阅读(14)  评论(0)    收藏  举报