帮助我如何使用正则表达式替换
下面的参数值<?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 =“something”替换孔param =“”
并且它必须是id =“1001”之后的第一个参数 帮助
我也使用autohotkey所以..我不知道你是否可以只提供一个用autohotkey编辑xml的代码。 :P但正则表达式会为此做。
有人向我提供了这段代码
RegExReplace(xml,"s)id=""1001"".*?param=""\K[^""]+","HELLO WORLD!")
如果param有一个值,它就可以工作,但如果没有,它就无法工作。 我该如何使它发挥作用。
答案 0 :(得分:1)
您可以使用类似的内容,但您应该考虑使用正确的XML解析器,因为在许多情况下此正则表达式很容易失败:
s/(id="1001" [^>]*param=").*?"/$1something"/
答案 1 :(得分:0)
如果您正在讨论XML / HTML参数,那么在这里查看XML / HTML解析引擎可能会更好。这样的引擎用于解析和修改这种内容 - 正则表达式并不适用于此类工作。
但它也有助于更多地了解你正在处理的事情;什么是环境?这是HTML / XML数据吗?你在哪修改它? (客户端?服务器?)等。
答案 2 :(得分:0)
如果您发布的命令按照您的说法工作,那么您需要做的就是将+
更改为*
,如下所示:
RegExReplace(xml,"s)id=""1001"".*?param=""\K[^""]*","HELLO WORLD!")
+
表示“一个或多个; *
表示”零或更多“