匹配规则的模式
Pattern for matching a rule
我已经尝试为rules.below的集合编写htaccess是我要匹配的规则模式
0x00|0x01|0x02|0x03|0x04|0x05|0x06|0x07|0x08|0x09|0x0A|0x0B|0x0C|
0x0D|0x0E|0x0F|0x10|0x11|0x12|0x13|0x14|0x15|0x16|0x17|0x18|0x19|
0x1A|0x1B|0x1C|0x1D|0x1E|0x1F|0x7F
我试过了 0x([01-09]|[0A-0F]|[10-19]|[1A-1F]|7F)
你误导了自己,因为作为一个人,你知道“01”、“02”等是一串数字。正则表达式不关心数字,他们关心字符。 [01-09]
不是“01 到 09”的意思,它的意思是“0;或 1 到 0;或 9”——这显然没有意义。
如果逐个字符分解,您有:
- “0”
- “x”
- “0”或“1”(在正则表达式中,集合
[01]
)
- “0”到“9”(字符范围
[0-9]
),或“A”到“F”([A-F]
)
- 加上“0x7F”的特例
所以你可以写:
0x[01]([0-9]|[A-F])|0x7F
您可以将两个范围合二为一,给出:
0x[01][0-9A-F]|0x7F
共享 0x
实际上并没有使它更短:
0x([01][0-9A-F]|7F)
0x00|0x01|0x02|0x03|0x04|0x05|0x06|0x07|0x08|0x09|0x0A|0x0B|0x0C| 0x0D|0x0E|0x0F|0x10|0x11|0x12|0x13|0x14|0x15|0x16|0x17|0x18|0x19| 0x1A|0x1B|0x1C|0x1D|0x1E|0x1F|0x7F
这已经是正则表达式了。您可以完全按照所写的方式使用它(作为正则表达式的一部分)。
但可以简化为:
0x([01][0-9A-F]|7F)
您可能希望使用 (?i)
模式修饰符使此正则表达式 case-insensitive。例如:
(?i)0x([01][0-9A-F]|7F)
或者在 .htaccess
.
中使用带有 mod_rewrite 指令的 NC
(nocase
) 标志
顺便说一句,这与 my answer 中使用的正则表达式基本相同,您之前的问题是:
Stop redirecting page if the url have control character
我已经尝试为rules.below的集合编写htaccess是我要匹配的规则模式
0x00|0x01|0x02|0x03|0x04|0x05|0x06|0x07|0x08|0x09|0x0A|0x0B|0x0C|
0x0D|0x0E|0x0F|0x10|0x11|0x12|0x13|0x14|0x15|0x16|0x17|0x18|0x19|
0x1A|0x1B|0x1C|0x1D|0x1E|0x1F|0x7F
我试过了 0x([01-09]|[0A-0F]|[10-19]|[1A-1F]|7F)
你误导了自己,因为作为一个人,你知道“01”、“02”等是一串数字。正则表达式不关心数字,他们关心字符。 [01-09]
不是“01 到 09”的意思,它的意思是“0;或 1 到 0;或 9”——这显然没有意义。
如果逐个字符分解,您有:
- “0”
- “x”
- “0”或“1”(在正则表达式中,集合
[01]
) - “0”到“9”(字符范围
[0-9]
),或“A”到“F”([A-F]
) - 加上“0x7F”的特例
所以你可以写:
0x[01]([0-9]|[A-F])|0x7F
您可以将两个范围合二为一,给出:
0x[01][0-9A-F]|0x7F
共享 0x
实际上并没有使它更短:
0x([01][0-9A-F]|7F)
0x00|0x01|0x02|0x03|0x04|0x05|0x06|0x07|0x08|0x09|0x0A|0x0B|0x0C| 0x0D|0x0E|0x0F|0x10|0x11|0x12|0x13|0x14|0x15|0x16|0x17|0x18|0x19| 0x1A|0x1B|0x1C|0x1D|0x1E|0x1F|0x7F
这已经是正则表达式了。您可以完全按照所写的方式使用它(作为正则表达式的一部分)。
但可以简化为:
0x([01][0-9A-F]|7F)
您可能希望使用 (?i)
模式修饰符使此正则表达式 case-insensitive。例如:
(?i)0x([01][0-9A-F]|7F)
或者在 .htaccess
.
NC
(nocase
) 标志
顺便说一句,这与 my answer 中使用的正则表达式基本相同,您之前的问题是:
Stop redirecting page if the url have control character