0

正規表現を使用して以下の param の値を置き換える方法を教えてください

<?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" ヘルプの後の最初のパラメーターである必要があります。

私もオートホットキーを使用しているので..オートホットキーで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!")

+「1つ以上」*を意味し、「ゼロ以上」を意味します

于 2010-11-14T09:15:15.897 に答える