sed 正規表現の一致が期待値を超えています。

sed 正規表現の一致が期待値を超えています。

これ、

echo 'memory-type="3" reference-number="1" crc="0"' | sed 's/reference-number=".*"//g'

返品:

memory-type="3" 

私の考えでは:

memory-type="3" crc="0"

これを達成するための正規表現は何ですか?

最終結果では、スペースは重要ではありません。

ベストアンサー1

あなたの問題は.*あなたの場合、最も長い文字列と一致します。

memory-type="3" reference-number="1" crc="0"
                                  ↑-------↑

1最も簡単な方法は、任意の文字数と一致するのではなく、任意の文字数と一致することです。見積もりに加えて:

$ echo 'memory-type="3" reference-number="1" crc="0"' | sed 's/reference-number="[^"]*"//g'
memory-type="3"  crc="0"

おすすめ記事