你能在范围内做正则表达式的子模式吗?

时间:2016-09-08 03:18:39

标签: regex

我的意图是做这样的事情:

[a-zA-Z\d(%8e)]

允许这些字符,数字和%8e的序列,但不包括%

我使用的语言是ruby 1.8.7

像%8e,%2b,(等)这样的序列的原因是处理url字符编码并处理它们以吐出一些apache可以理解为重定向或重写.htaccess

修改 我也不想要任何位置依赖(例如,如果在字符串的末尾捕获%8e,而不是在开始时捕获,那么这不是我正在寻找的)

2 个答案:

答案 0 :(得分:2)

([a-zA-Z0-9]|%8e)*

应该是你想要的。

请注意,\d不应该在字符类[]中,因为iirc某些正则表达式引擎不支持它。

测试结果:

https://regex101.com/r/sB7eT4/1

答案 1 :(得分:0)

这就是你的意思,我想:

([a-zA-Z\d]|%8e)