1

標準正規表現

次のような(部分的な)JSON文字列があります。

"99887":{"foo":"99887","bar":"paul"},"88776":{"foo":"88776"...

{これを生成するには、それぞれの前に数値文字列を取り除く必要があります。

{"foo":"99887","bar":"paul"},{"foo":"88776"...

単純な正規表現の場合、パターン("\d{5}"\:)(\{)を使用して保持し$2ます。

シード

これを sed コマンドに変換するのに苦労しています:

sed 's/\("\d{5}":\)\(\{\)/\2/g'

エラーメッセージを生成します

エラー: 繰り返し演算子のオペランドが無効です

他のコンテキストでは、このメッセージは、sed先読み/後読み (私は使用していません) をサポートしていないという事実に関連しているようです。

4

1 に答える 1

4

あなたのsedの問題は次のとおりです。

  • を使用しなかったため-r、sed は拡張正規表現を使用しません
  • \d{5}sedによって認識され\{ず、閉じられていないため有効でもありません

(なし-rでは、使用できます\{5\}; ありでは-r、使用できます{5})

この行は、期待される出力を提供するはずです:

 sed 's/"[0-9]*":{/{/g' file
于 2013-04-27T21:41:23.253 に答える