regex - 在 OSX 中使用 grep 匹配动态字符串

标签 regex grep

我在 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/

相关文章:

java - 如何检查字符串是否为正则表达式

Jquery — 将 URL 正则表达式插入大写句子?

java - java正则表达式中 "\\d+"和 "\\d++"的区别

bash - 使用 awk、grep、sed 解析大型日志文件 (~5gb) 的性能问题

linux - 我将如何进行这项工作?

java - Talend - 排除具有特定掩码的文件

时、分、秒格式的正则表达式 HH :MM:SS

linux - 如何grep非键盘字符?

linux - 通过管道发送到 Grep 会给出太多结果

linux - 在管道 grep 到 grep 后保留颜色