正则表达式的使用是一直是一个另人头痛的问题,因其语法和使用规则没有很强的规范,也因没有系统的学习过,只是工作中需要到了才拿来用一下。
现在把用到的点拿来备注一下,不用到时候用的时候再重新学习了。
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,}。 |