正则表达式规则
规则数据来源于runoobcom,如果侵权,请告知删除,谢谢。
-非打印字符
| 字符 | 描述 |
|---|---|
| \f | 匹配一个换行符,等价于\x0x和\cL |
| \n | 匹配一个换行符,等价于\0x0a和\cJ |
| \r | 匹配一个回车符,等价于\x0d和\cM |
| \t | 匹配一个制表符,等价于\0x09和\cl |
| \v | 匹配一个垂直制表符,等价于\x0b和\cK |
| \s | 匹配任何空白字符,包括空格、制表符、换行符等等,等价于[\f\n\r\t\v] |
| \S | 匹配任何非空白字符,等价于[^ \f\n\r\t\v] |
-特殊字符
-限定符
| 字符 | 描述 |
|---|---|
| {n} | n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 |
| {n,} | n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。 |
| {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。 |
| * | 匹配前面的子表达式零次或多次,例如,zo*能匹配”zo”以及”zoo” |
| + | 配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
| ? | 匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 或 “does” 中的”do” 。? 等价于 {0,1}。 |
*、+限定符都是贪婪的,它们会尽可能多的匹配文字,只要在后面加上?就可以实现非贪婪。
有如下Xml字符串
<H1>Chapter 1 – Introduction to Regular Expressions</H1>

本文介绍了正则表达式的规则,包括非打印字符、特殊字符、限定符和定位符等,并探讨了C语言中如何利用POSIX辅助库进行正则表达式测试,提供了测试代码及其运行结果。
最低0.47元/天 解锁文章
9254

被折叠的 条评论
为什么被折叠?



