我在 OS X 上尝试使用 grep 获取在 CSS 文件中打印的动态创建的 Sprite 名称的文件名。
我不知道如何匹配以下字符串:
ui/sprite-sba62176be8.png
唯一改变的部分是连字符和 .png 之间的字符串
最佳答案
使用这个(感谢@mtm对我原来的正则表达式进行了调整):
grep -o "ui/sprite-[^.]\+\.png" yourfile
说明
[^.]
是一个否定字符类,匹配任何不是点的字符。+
量词表示其前面的“一个或多个”。在基本正则表达式模式(默认)下使用grep
时,需要对其进行转义:\+
o
标志仅打印 o 匹配项(而不是整行)。
请注意,在 grep 的某些实现中,您需要 P
标志(它激活 Perl 模式):
grep -oP "ui/sprite-[^.]+\.png" yourfile
关于regex - 在 OSX 中使用 grep 匹配动态字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877052/