0

帮助我如何使用正则表达式替换下面的参数值

<?xml version="1.0" encoding="UTF-8" ?>
<games>
    <game id="1001" path="C:\Program Files\Warcraft III\war3.exe" param="" display="1" priority="0"/>
</games>

param 的值为空我想使用正则表达式向它添加一些东西。或将孔 param="" 替换为 param="something"

它必须是 id="1001" 帮助之后的第一个参数。

我也在使用 autohotkey 所以.. 我不知道你是否可以提供一个代码来使用 autohotkey 编辑 xml。:P 但正则表达式可以做到这一点。

有人向我提供了这段代码

RegExReplace(xml,"s)id=""1001"".*?param=""\K[^""]+","HELLO WORLD!")

如果参数有一个值,它就可以工作,但如果没有,它就不会工作。我如何使它工作。

4

3 回答 3

1

你可以使用这样的东西,但你应该考虑使用适当的 XML 解析器,因为这个正则表达式在很多情况下很容易失败:

s/(id="1001" [^>]*param=").*?"/$1something"/
于 2010-11-14T06:50:52.797 回答
0

假设您正在谈论 XML/HTML 参数,您最好在这里查看 XML/HTML 解析引擎。这样的引擎是为解析和修改这类内容而设计的——正则表达式根本不适合这样的工作。

但这也有助于更多地了解您正在处理的内容;环境如何?这是 HTML/XML 数据吗?你在哪里修改?(客户端?服务器?)等。

于 2010-11-14T06:51:26.747 回答
0

如果您发布的命令如您所说,那么您需要做的就是将 更改+为 a *,如下所示:

RegExReplace(xml,"s)id=""1001"".*?param=""\K[^""]*","HELLO WORLD!")

+意思是“一个或多个”;*意思是“零个或多个”

于 2010-11-14T09:15:15.897 回答