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