正则表达式

正则表达式的模式可以包括以下内容:
  • 字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。
  • 特殊字符:例如点号 .、星号 *、加号 +、问号 ? 等,它们具有特殊的含义和功能。
  • 字符类:用方括号 [ ] 包围的字符集合,用于匹配方括号内的任意一个字符。
  • 元字符:例如 \d、\w、\s 等,用于匹配特定类型的字符,如数字、字母、空白字符等。
  • 量词:例如 {n}、{n,}、{n,m} 等,用于指定匹配的次数或范围。
  • 边界符号:例如 ^、$、\b、\B 等,用于匹配字符串的开头、结尾或单词边界位置。 
模式 描述
^ 匹配字符串的开头。
$ 匹配字符串的末尾。
. 匹配除了换行符(\n 、\r) 之外任意单个字符。
[  ] 匹配括号内的任意一个字符, 例如,[abc] 匹配字符 "a"、"b" 或 "c"。
[^  ] 匹配除了括号内的字符以外的任意一个字符, 例如,[^abc] 匹配除了字符 "a"、"b" 或 "c" 以外的任意字符。
* 匹配前面的模式零次或多次。
+ 匹配前面的模式一次或多次。
? 匹配前面的模式零次或一次。
{n} 匹配前面的模式恰好 n 次。
{n,}

匹配前面的模式至少 n 次。例如,"o{2,}"不能匹配"Bob"中的"o",但能匹配"foooood"中的所有o,"o{1,}"等价于"o+","o{0,}"则等价于"o*"。

{n, m} 匹配前面的模式至少 n 次且不超过 m 次。
a|b 匹配a或b, 用于指定多个模式的选择。
( ) 匹配括号内的表达式,用于分组和捕获子表达式。
(?: ) 与 ( )类似,  用于分组但不捕获子表达式。
(?= ) 正向肯定预查,exp1(?=exp2):查找 exp2 前面的 exp1。
(?<= ) 反向肯定预查,(?<=exp2)exp1:查找 exp2 后面的 exp1。
(?! ) 正向否定预查,exp1(?!exp2):查找后面不是 exp2 的 exp1。
(?<! ) 反向否定预查,(?<!exp2)exp1:查找前面不是 exp2 的 exp1。
\ 转义字符,用于匹配特殊字符本身。
\cx

匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\s 匹配任意空白字符,包括空格、换行符等,等价于 [ \f\n\r\t\v]。 注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任意非空字符,等价于 [^\f\n\r\t\v]。
\w 匹配数字字母下划线,等价于'[A-Za-z0-9_]'。
\W 匹配非数字字母下划线,等价于 '[^A-Za-z0-9_]'。
\d 匹配任意数字,等价于 [0-9]
\D 匹配任意非数字,等价于 [^0-9]。
\A 匹配字符串开始
\z 匹配字符串结束
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\G 匹配最后匹配完成的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
posted @   Until99  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示