正则表达式替换十六进制字符

时间:2013-08-13 14:52:26

标签: regex

我是regex的新手,无法创建表达式来解决我的问题。

我有一个像/abc/def%20hi%28hello%29test这样的字符串。我想用%20

替换十六进制字符,即%28%29-

我知道他们三个都有不同的含义,但我可以用任何单个字符替换所有字符,我的意思是-或甚至.或''(空格)。

所以,我想把输出作为/abc/def-hi-hello-test

我想找到%并将%[a-zA-Z0-9][a-zA-Z0-9]中的三个字符替换为-,但不起作用。

有些人可以帮我写一个只替换那些十六进制字符的正则表达式吗?

2 个答案:

答案 0 :(得分:3)

搜索:

%[a-fA-F0-9][a-fA-F0-9]

替换为:

-

示例:http://regex101.com/r/qR6xW7

答案 1 :(得分:0)

听起来你想要做的就是解码URL编码,我敢打赌你的宿主语言有内置的设施。在PHP中,那是{{3} }。

解码完URL后,您可以更轻松地修改想要修改的内容。