
这,
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"