1

私は正規表現にかなり慣れていないため、これは StackOverflow で見た中で最も単純な質問かもしれません :-)

次のようなテキストを含む大きな JSON ファイルがあります。

{..., "text": "BLAH BLAH", ...}

テキストには、特殊文字や のような文字が含まれている可能性があります。これは\"、正規表現のエスケープ文字と見なすことができます。できればメモ帳++で、その後に続く部分内で単一文字のコロンを見つけ:てチルダに置き換えようとしています。どんな助けでも大歓迎です。~"text"

4

3 に答える 3

1

この正規表現は、:指定されたフィールドの値のすべてを検索しtext、文字を~. Notepad++ v5 で正規表現を使用すると問題が発生することに注意してください。ここでの私のデモは、Notepad++ v6.3.3 でテストされました

正規表現:("text":\s"[^"]*?):

と置換する:$1~

入力文字列:{"not text": "12:34", "text": "BLAH:BLAH", "Never get a": ":oskupee"}

ここに画像の説明を入力

于 2013-06-22T02:09:11.190 に答える
0

あなたはこれを行うことができます:

find: ("(?:[^"]+|(?<=\\)")*")\s*:
replace: $1~

アイデアは、二重引用符内のコンテンツをキャプチャして、置換に入れることです。

後読みを使用して、二重引用符内のエスケープされた二重引用符を許可します。

于 2013-06-22T07:09:18.690 に答える
0

これが私がしたことです(@Mikeのすべての助けに感謝しますが、多くの編集を行う必要がありました。そのため、他のユーザーが完全な回答を得ることができるように、私は自分の質問に答えています)

  1. \"text\": \".*? : .*?\",メモ帳++で検索
  2. 検索して置換すると\1~\2、すべて置換されます:~
  3. 間違いを手動で修正する
于 2013-06-21T19:41:30.073 に答える