正则表达式的使用是一直是一个另人头痛的问题,因其语法和使用规则没有很强的规范,也因没有系统的学习过,只是工作中需要到了才拿来用一下。
现在把用到的点拿来备注一下,不用到时候用的时候再重新学习了。
1.正则表达式中匹配特定的字符结尾
在做url 跳转时需要把一个url 地址跳转到一个指定的文件处
当目录中含有 /1001/ 且以/1001/结尾时,这里的1001只是把数字具体化了,这样看起来更通俗易懂。
这时的url 可能会是 http://www.yitire.com/1001/ 这时候需要跳转到 http://www.yitire.com/dealer/index.php
正则表达式就可以写成 /([0-9]+)/$ 如下图所示,只会匹配到 最后出现 /1001/ 处,凡是url 中不是以/1001/ 结尾的都不会匹配到。
2.正则表达式中只能出现特定的字符串
当做网站 地跳转时,可能在访问某些目录时是禁止跳转的,这时就需要在正则表达式中指定,当遇到这些路径时需要路过
只在需要的目录下做跳转。
eg. 当只需要在路径中含有 /1001/index 、/1003/product 时做跳转,当遇到其它的字符串时略过。
这时的正则表达式可以写成 /([0-9]+)/(index|product) ,如下图所示,正则表达式只匹配到了需要的目录
3.正则表达式中不能出现特定的字符串
当需要匹配一段字符串时但是不希望字符串中出现某些字符串,如 index,product,about
正则表达式可以写成: (?!.*index|.*product|.*about)^.*$
“?!” :详解
(?!pattern)
|
正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
|
^
|
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
|
$
|
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
|
*
|
匹配前面的子表达式零次或多次(大于等于0次)。例如,zo*能匹配“z”,“zo”以及“zoo”。*等价于{0,}。
|
.点
|
匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。
|
“|” :详解
| | 将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。 |