博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
元字符终极总结
阅读量:4049 次
发布时间:2019-05-25

本文共 2408 字,大约阅读时间需要 8 分钟。

-- Start

字符(Characters)

元字符(Metacharacter) 匹配(Matches)
\a alert 警报(\u0007)
\e Escape字符(\u001B)
\f form-feed 进纸符(\u000C)
\n newline 换行符(\u000A)
\r carriage-return 回车(\u000D)
\t tab 水平制表符(\u0009)
\num octal 八进制转义,支持范围从\0到\377
\xnum hexadecimal 十六进制转义,支持范围从\x0到\xFF
\x{num} hexadecimal 十六进制转义,不受限制
\unum Unicode Unicode转义,支持范围从\u0000到\uFFFF
\Unum Unicode Unicode转义,支持范围从\U0001到\UFFFF
\cchar control 控制字符,其中char是个大写字母,如:\cJ匹配换行符,等同于\n

字符组(Character classes)

元字符(Metacharacter) 匹配(Matches)
[abc] simple class 匹配a或b或c
[^abc] 匹配abc之外的任何单个字符
[a-zA-Z] range 匹配a到z或A到Z的任何单个字符
[a-d[m-p]] union 等同于[a-dm-p]
[a-z&&[def]] intersection 匹配d, e 或 f
[a-z&&[^bc]] subtraction 等同于[ad-z]

预定义字符组(Predefined character classes)

元字符(Metacharacter) 匹配(Matches)
. dot 任何字符,能不能匹配换行符取决于匹配模式
\d digit 数字,等价于[0-9]
\D non-digit 非数字,等价于[^0-9]
\s whitespace 空白字符,等价于[ \t\n\x0B\f\r]
\S non-whitespace 非空白字符,等价于[^\s]
\w word 组成单词的字符,等价于[a-zA-Z_0-9]
\W non-word 不是组成单词的字符,等价于[^\w]

POSIX 字符组

元字符(Metacharacter) 匹配(Matches)
[[:alnum:]] 字母和数字
[[:alpha:]] 字母
[[:blank:]] 空格和制表符
[[:cntrl:]] 控制字符
[[:digit:]] 数字
[[:graph:]] 非空白字符
[[:lower:]] 小写字母
[[:print:]] 类似[[:graph:]],但是包含空白字符
[[:punct:]] 标点符号
[[:space:]] 空白字符
[[:upper:]] 大写字母
[[:xdigit:]] 十六进制中容许出现的数字(例如 0-9a-fA-f)

零长度断言

元字符(Metacharacter) 匹配(Matches)
caret 行首
dollar
\b  boundary 单词边界
\B    非单词边界
\<   单词的起始位置
\>   单词的结束位置
\A    字符串起始位置
\Z    字符串结束位置
\z    字符串结束位置
\G    本次匹配的起始位置或上次匹配的结束位置
(?=...) positive lookahead 如果右边能够匹配,则成功
(?!...) negative lookahead 如果右边不能够匹配,则成功
(?<=...) positive lookbehind 如果左边能够匹配,则成功
(?<!...) negative lookbehind 如果左边不能够匹配,则成功

贪婪量词

元字符(Metacharacter) 匹配(Matches)
X?    匹配X 0次或1次
X*    匹配X 0次或无数次
X+    匹配X 1次或无数次
X{n}    匹配X n次
X{n,}    匹配X 至少n次
X{n,m}    匹配X 至少n次至多m次

非贪婪量词

元字符(Metacharacter) 匹配(Matches)
X??   匹配X 0次或1次
X*?   匹配X 0次或无数次
X+?   匹配X 1次或无数次
X{n}?   匹配X n次
X{n,}?   匹配X 至少n次
X{n,m}?   匹配X 至少n次至多m次

占有量词

元字符(Metacharacter) 匹配(Matches)
X?+   匹配X 0次或1次
X*+   匹配X 0次或无数次
X++   匹配X 1次或无数次
X{n}+   匹配X n次
X{n,}+   匹配X 至少n次
X{n,m}+   匹配X 至少n次至多m次

分组,捕获及后向引用

元字符(Metacharacter) 匹配(Matches)
(...)   分组或捕获
\n   引用第n个括号中匹配的内容
(?<name>...) 命名捕获
(?:...)   分组
(?>…)   固化分组

多选结构

元字符(Metacharacter) 匹配(Matches)
a|b|c   匹配a或b或c

条件判断

元字符(Metacharacter) 匹配(Matches)
(?if then |else) 条件为真,则匹配then子表达式,否则匹配else子表达式

匹配模式

元字符(Metacharacter) 匹配(Matches)
(?i:...)   不区分大小写的匹配模式
(?x:...)  
(?s:...)   单行模式(点号通配模式)
(?m:...)   多行模式(增强的行锚点模式)
\Q...\E   文字文本模式

--更多参见:

-- 声 明:转载请注明出处
-- Last Updated on 2012-05-12
-- Written by ShangBo on 2012-05-06
-- End

你可能感兴趣的文章
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>