时间:2021-05-02
本文实例讲述了正则表达式中的操作符及说明。分享给大家供大家参考,具体如下:
一、普通字符
包括所有未显式指定为元字符的打印和非打印字符组成,如大小写字母、数字、标点符号等。
二、元字符
元字符是一些在正则表达式里有着特殊含义的字符。因为元字符在正则表达式里有着特殊的含义,所以这些字符不能用来代表它们本身,必须通过给它加个反斜杠前缀来转义,如此得到的转义序列将匹配那个字符本身而不是它特殊的元字符含义。如[表示一个字符集合的开始,如果在正则表达式中要匹配[,那么需要这样引用:\[,才能表示[本身。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 $ 匹配输入字符串的结尾位置。如果设置多行匹配,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 () 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 [Math Processing Error]。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 . 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 [] 标记一个字符集合的开始和结束。要匹配 [或],请使用 [Math Processing Error]。 \ 将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 | 指明两项之间的一个选择。要匹配 |,请使用 \|。 {} 标记限定符表达式的开始和结束。要匹配 {或},请使用 \{或\}。三、非打印字符
\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。四、预定义字符
. 任何字符(与结束符\r\n可能匹配也可能不匹配) \d 数字,等价于[0-9] \D 非数字,等价于[^0-9] \s 空白字符,等价于[ \t\n\x0B\f\r] \S 非空白字符,等价于[^\s] \w 单词字符,等价于[a-zA-Z_0-9] \W 非单词字符,等价于[^\w] \b 单词的前或后边界 \B 表示非单词边界五、POSIX 字符
[:alnum:] 任何一个字母或数字,等价于[a-zA-Z0-9] [:alpha:] 任何一个字母,等价于[a-zA-Z] [:blank:] 空格或制表符,等价于[\t] [:cntrl:] ASCII控制字符(ASCII 0到31,再加上ASCII127) [:digit:] 任何一个数字,等价于[0-9] [:graph:] 任何一个可打印字符,但不包括空格 [:lower:] 任何一个小写字母,等价于[a-z] [:print:] 任何一个可打印字符 [:punct:] 既不属于[:alnum:]和[:cntrl:]的任何一个字符 [:space:] 任何一个空白字符,包括空格,等价于[^\f\n\r\t\v] [:upper:] 任何一个大写字母,等价于[A-Z] [:xdigit:] 任何一个十六进制数字,等价于[a-fA-F0-9]六、限定符
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配 "do" 或"does" 中的"do" 。? 等价于 {0,1}。 {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?'。请注意在逗号和两个数之间不能有空格。这里只是按照功能的不同来对正则表达式中用到的一些操作符进行分类,不一定准确,只是为了说明正则表达式中的操作符。
希望本文所述对大家正则表达式的学习有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
上篇文章给大家分享了php正则表达式安全教程之基础篇,本文将继续延伸有关php正则表达式的知识,具体内容请看下文。php正则表达式的各种操作符的运算优先级相同优
正则表达式常用来在所有语言中搜索字符串的任何模式或文字。MongoDB还提供了正则表达式功能的字符串模式使用正则表达式$regex操作符。MongoDB使用PC
继上几篇正则表达式相关说明(详情:正则表达式),我们今天继续讨论下,它的单行,多行模式使用,及容易出现错误地方。单行,多行模式,都是正则表达式的模式修饰符里面出
我们已经了解到MySQL可以通过LIKE...%来进行模糊匹配。MySQL同样也支持其他正则表达式的匹配,MySQL中使用REGEXP操作符来进行正则表达式匹配
操作符~~等效于LIKE,而~~*对应ILIKE。还有!~~和!~~*操作符分别代表NOTLIKE和NOTILIKE。另外:~匹配正则表达式,大小写相关'tho