我想获取与以下模式匹配的字符串列表:
CLASS_NAME:"*"
其中*
代表任意数量的字符。
我试过:
grep -o CLASS_NAME:\".*\" script.js
和
grep -o CLASS_NAME:\"*\" script.js
第一种情况返回匹配字符串之后的整行,而第二种情况则在第一种情况下终止"
。我怎样才能让它只返回匹配的字符串?
答案1
好吧,所以我猜你的问题是每行的多个引号比你想要的要多,因为正则表达式本质上是贪婪的 - 如果可以的话,它总是会尽可能匹配。
因此,解决方案是确保仅在两个双引号之间进行匹配,例如:
grep -o 'CLASS_NAME:"[^"]*"' script.js