web-dev-qa-db-ja.com

notepad ++ regex各行に重複するxmlテキスト

特定のテキストを挿入(複製)する必要があるxmlファイルを処理する必要があります-例については、以下を参照してください。

<Item Property1="..." ... PropertyN="someText"></Item>

どのように見せたいか:

<Item Property1="..." ... PropertyN="someText">someText</Item>

someText

  1. 固定長ではありません(1つ以上の文/単語)
  2. 次のものを含めることができます/含めることができます:
    • &#xD; &#xA
    • (&amp;および_)
    • {0} {1}
    • / \〜!@#%&* _ +

私の質問:

  1. いくつかのグループを見つけることができました(つまり、PropertyNの前のテキスト(^.*?PropertyN=")および最後のグループ(つまり、 "> </ Item>"を含むグループ-\"></Item>.*$))しかし、PropertyN値を抽出する方法、それを統合する方法、および複製する方法がわかりません。

  2. SomeTextの各コピーにプレフィックスやサフィックス(ファイル全体で一定)が追加されるように、正規表現を変更(置換)するにはどうすればよいですか? (たとえば、「### prefix」と「### suffix」を追加して、行が次のようになるようにします)

    <Item Property1="..." ... PropertyN="someText">###prefixsomeText###suffix</Item>

ありがとうございました!

R

1
radui
  • Ctrl+H
  • 何を見つける:<Item Property1=.+? PropertyN="([^"]+)">\K
  • と置換する: ###prefix$1###suffix
  • [〜#〜] check [〜#〜]マッチケース
  • [〜#〜]チェック[〜#〜]ラップアラウンド
  • [〜#〜] check [〜#〜]正規表現
  • [〜#〜]チェックを外す[〜#〜]. matches newline
  • Replace all

説明:

<Item Property1=    # literally
.+?                 # 1 or more any character, not greedy
PropertyN="         # literally
([^"]+)             # group 1, 1 or more any character that is not double quote
">                  # end tag
\K                  # forget all we have seen until this position

交換:

###prefix           # prefix
$1                  # content of group 1, (some text)
###suffix           # suffix

スクリーンショット(前):

enter image description here

スクリーンショット(後):

enter image description here

1
Toto