正则表达式描述一种字符串匹配模式,可用于检查字符串是否包含某个子字符串、替换匹配的子字符串或从字符串中提取限定的子字符串等。
FIV:
runoo+b,能够与runoob、runooob、runooob等匹配,+符号表示前面的字符必须至少出现一次(一次或屡次)。
runoo*b,能够配置runob、runoob、runooob等,*符号不能出现,也能够出现一次或屡次(0、1或屡次)。
什么?R能和颜色匹配吗?问题编号表示前一个字符最多只能出现一次(0或1)。
构造正则表达式与建立数学表达式相同。也就是说,小表达式能够与多个元字符和运算符组合,以建立更大的表达式。正则表达式的组合能够是单个字符、字符集、字符范围、字符之间的选择或全部这些组合的任意组合。
正确的表达式是由普通字符(如字符A到Z)和特殊字符木浴桶(称为元字符)组成的文本模式。模式描述搜索文本时要匹配的一个或多个字符串。正确的表达式充当模板,以匹配搜索字符串的字符模式。
临时抵押
经常使用字符包括全部未指定为元字符的可打印和不可打印字符。这包括全部大写和小写字母、全部数字、全部标点符号和一些其余符号。
远程学习
非打印字符也能够是正确表达式的一部分。下表列出了非打印字符的转换顺序:
大赦
\ C x配置X指定的控制字符。例如,C m配置Control-M或回车。x的值必须是a-z或a-z中的一个。不然,请将c视为已定义的“c”字符。
\ f匹配分页符。等效毒性0c和cl.
\ n匹配换行符。等效毒性0a和cj。
\ R匹配回车。等效毒性0d和cm。
\ s匹配任何空白字符,包括空格、制表符、分页符等,至关于[f n r t v]。请注意,Unicode的正确表达式与全角度空格字符匹配。
\ s匹配任何非空字符。至关于[^f n r t v]。
\ t与标签匹配。至关于X09和CI。
\ v匹配垂直表格字符。它的毒性至关于0b和ck。
附带条件
全部特殊字符都是具备特殊含义的字符,如上面提到的*in runoo*b。一个简单的解释就是表达任何字符串的含义。若是要在字符串中查找*符号,则须要先添加一个:runo ob来转换*的定义,而后再将其与runo*ob匹配。
若是要配置这些特殊字符,必须首先使用字符“转换定义”,即将反斜杠字符\放在它们前面。下表列出了正确表达式中的特殊字符:
特殊字符描述
$匹配输入字符串的结尾。若是设置了regexp对象的多行属性,则$还与“n”或“r”匹配。
()标记子表达式的开始和结束。能够得到子表达式供之后使用。要配置这些字符,请使用(和)。
*将前一个子表达式匹配一次或屡次。要匹配*字符,请使用*。
+配置上一个子表达式一次或屡次。要配置+个字符,请使用+。
请使用。
[标记带括号表达式的开头。要匹配[,请使用[。
?将前面的子表达式匹配一次或一次,或者指定一个不匹配的限定符。你想要吗?字符,请使用?.
\将下一个字符标记为特殊字符、文字字符、向后引用或八进制转换器。例如,“n”匹配字符“n”。“n”匹配替换行字符。序列“匹配”和“(匹配”)。
^配置输入字符串的起始位置,除非在方括号表达式中使用,这意味着不接受字符集。要配置^字符自己,请使用^。
标记限制表达式的开头。匹配,使用。
|指定两个项目之间的选项。要匹配,请使用它。
附带条件
指定正确表达式的给定组件必须至少出现一次以知足匹配。是否有*或+或?或N或N,或N,M,共6种。
正确表达式的限定符为:
大赦
*匹配前的子表达式被使用一次或屡次。例如,zo*能够匹配“z”和“zoo”。*至关于0,。
+将前一个子表达式匹配一次或屡次。例如,“zo+”能够匹配“zo”和“zoo”,但不能匹配“z”。+等于1。
?与前面的子表达式匹配一次或一次。例如,“是吗?”它能够与“do”中的“do”、“do”中的“do”、“doxy”中的“do”匹配。至关于0,1。
_ n是非负整数。MA正则表达式