Regex 正则表达式替换十六进制字符
我是regex新手,无法创建表达式来解决我的问题 我有一个字符串,如Regex 正则表达式替换十六进制字符,regex,Regex,我是regex新手,无法创建表达式来解决我的问题 我有一个字符串,如/abc/def%20hi%28hello%29test。我想用-替换十六进制字符,即%20、%28和%29 我知道这三个词都有不同的含义,但我可以用任何单个字符来替换它们,我的意思是-甚至或“”(空格) 因此,我想将输出作为/abc/def hi hello test 我想找到%并将%[a-zA-Z0-9][a-zA-Z0-9]中的三个字符替换为-,但不起作用 有人能帮我写一个只替换十六进制字符的正则表达式吗?搜索: %[a-
/abc/def%20hi%28hello%29test
。我想用-
替换十六进制字符,即%20
、%28
和%29
我知道这三个词都有不同的含义,但我可以用任何单个字符来替换它们,我的意思是-
甚至
或“”(空格)
因此,我想将输出作为/abc/def hi hello test
我想找到%
并将%[a-zA-Z0-9][a-zA-Z0-9]
中的三个字符替换为-
,但不起作用
有人能帮我写一个只替换十六进制字符的正则表达式吗?搜索:
%[a-fA-F0-9][a-fA-F0-9]
替换为:
-
示例:搜索:
%[a-fA-F0-9][a-fA-F0-9]
替换为:
-
示例:听起来你真正想做的是解码URL编码,我敢打赌你的宿主语言有一个内置的功能。在PHP中,这就是
解码URL后,您可以更轻松地修改您想要修改的内容。听起来您真正想要做的是解码URL编码,我敢打赌您的宿主语言有一个内置的功能。在PHP中,这就是
解码URL后,您可以更轻松地修改要修改的内容。您说“不工作”是什么意思?以你的例子来说,它给出了什么输出?我们需要以更具体的方式知道-你是在程序中编写的吗?或者你想在文本编辑器的搜索和替换对话中使用它?正则表达式不是语言独立的-你应该考虑写一个这样我们可以更好地诊断你的问题。你的正则表达式看起来很好(除了包含代码> G-Z ,这是你不可能注意到的,因为你刚才说它“不起作用”,这是不够具体的)。请使用您选择的语言/工具构建一个测试用例,该测试用例应包含一个不起作用的易于复制的测试用例。我认为OP需要全局标志
g
(或等效标志)。您可能需要将其复杂化一点才能100%正确-我想%%28
不应该变成%(
,因为%%
是一个转义的%%
。你说它“不起作用”是什么意思使用你的例子,它给出了什么输出?我们需要以更具体的方式知道,你是在程序中写这个吗?还是在文本编辑器的搜索和替换对话框中使用这个?正则表达式不是语言无关的-你应该考虑写一个这样我们可以更好地诊断你的问题。你的正则表达式看起来很好。(除了包括G-Z
,你不太可能注意到,因为你只是说它“不起作用”,这确实不够具体)。请使用您选择的语言/工具构建一个测试用例,其中应包括一个不起作用的易于复制的测试用例。我的印象是OP需要全局标志g
(或同等标志)。您可能需要将其复杂化一点才能100%正确-我想%%28
不应该变成%(
,因为%
是一个转义的%
。使其更短(?i)%[a-f0-9]{2}
:)我不认为正则表达式是OP遇到的真正问题,因为他的例子实际上是匹配的。我相信这是他遇到问题的替换…如果不知道他正在使用的语言,我们就无法真正帮助他。@HamZa,或者更简短地说,用\d
@HamZa替换0-9
,这取决于正则表达式引擎。@Dukel很好地使用印度教、阿拉伯语或希伯来语数字。将其缩短为(?i)%[a-f0-9]{2}
:)我不认为正则表达式是OP遇到的真正问题,因为他的例子实际上是匹配的。我相信这是他遇到问题的替换…如果不知道他正在使用的语言,我们就无法真正帮助他。@HamZa,或者更简短地说,用\d
@HamZa替换0-9
,这取决于正则表达式引擎。@Dukeling井\d
印度教、阿拉伯语或希伯来语数字。