0

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

我有一个像/abc/def%20hi%28hello%29test. 我想替换十六进制字符,即%20,%28%29-

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

所以,我想得到输出为/abc/def-hi-hello-test.

我想从with中查找%并替换三个字符,但不起作用。%[a-zA-Z0-9][a-zA-Z0-9]-

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

4

2 回答 2

3

搜索:

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

用。。。来代替:

-

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

于 2013-08-13T15:01:22.723 回答
1

听起来你真正想做的是解码 URL 编码,我敢打赌你的宿主语言有一个内置的工具。在 PHP 中,就是url_decode

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

于 2013-08-13T15:24:55.383 回答