用于在href属性中的引号之间匹配&符号的正则表达式模式

时间:2014-11-17 20:56:46

标签: html regex

我正在尝试编写一个脚本,在网页上编码未编码的&符号,包括嵌入在URL中的查询字符串中的那些符号。我正在尝试编写一个正则表达式模式来匹配href属性中的每个&符号,最终目标是将它们与HTML编码的对应项交换出来。

即。这样:

href="http://example.com/blah?value&other&test"

会变成:

href="http://example.com/blah?value&other&test"

我相信我需要使用前瞻(和/或可能是后视?)插入,但我不太清楚这些是如何工作的。 Pages可能包含多个包含href属性的元素,因此需要能够匹配这些标记中的每个&符号。

2 个答案:

答案 0 :(得分:1)

如果您使用的是PCRE兼容语言,则可以使用:

&(?!amp;)

...匹配&尚未清理,然后替换为:

&

示例:http://regex101.com/r/lO6vK9/2

为了使这项工作成功,您需要首先拆分URL查询?,以便您正在清理的结果字符串实际上是,例如value&other&test&something

所有这些都表示,如果您的语言具有内置的URL编码功能,我建议您使用它。

答案 1 :(得分:0)

我不知道你将使用什么语言,但几乎在每种语言中都有一个替换字符串中的字母或子字符串的功能。

例如在JavaScript中:

var str = "hello world!";
var res = str.replace("world", "stackoverflow"); 
>> "hello stackoverflow!"