.htaccess中常用的正则表达式

作者: zms! 日期: 2012.06.01 本文发布于2858天前 分类: Rewrite方法 相关:

文本

—— 任意一个单字符
[chars] —— 字符类: “chars”中的任意一个字符【也可用[0-5]表示0到5中的任意数】

[^chars] —— 字符类: 不在”chars”中的字符

text1|text2 —— 选择: text1 或 text2

量词

?  —— 前面的字符出现 0 或 1 次 【不出现或只出现一次】

* —— 前面的字符出现 0 或 N 次(N > 0) 【出现或不出现】

—— 前面的字符出现 1 或 N 次(N > 1) 【必须出现至少一次】

{n} —— 前面的字符重复n次

{n,} —— 前面的字符重复n次或更多

{a,b} —— 前面的字符重复a至b次

例子:

1、.* —— 任何长度的字符

2、<a[^>]+> —— 匹配用尖括号括起来的以a开头的字符串。

分组

(text) —— text 组

(常用于设置一个选择的边界,或用于生成后引用:

在RewriteRule中可以用 $N 引用第N个分组)

小测试:能看懂下面一长串的含义吗?

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

^ —— 匹配字符串的开始

$ —— 匹配字符串的结束

【^$锚可以用于确定字符串,既可以用于确定起点或终点】

例子:^$ —— 空字符串

转义

\c —— 对给定的字符c进行转义【比如对”.[]()”进行转义,既排除他们本身的定义,最常用的是/.】

说明:如果你想输入的是元字符本身的话,比如你想输入.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.


返回上一页


讨论区

您尚未 登录,或请 注册

登 录 注 册


你可能也喜欢

nginx域名重写 不加www 转到加www. 2017.06.24,1 pv
nginx rewrite of discuz 2017.05.25,3 pv
手机访问电脑页面时跳转 2014.11.18,19 pv

在 JavaScript 文件中运行 PHP 代码 2014.10.08,10 pv
使用 .htaccess 缓存加速网站 2014.10.08,12 pv
强制 URL 以斜杠结尾 2014.10.08,9 pv