Grep用于图像URL

时间:2018-02-06 01:12:07

标签: javascript regex grep

我想搜索并列出(或多个)HTML页面中的所有图像网址。使用Regexr.com我能够将这个正则表达式放在一起:src=".*(\.png|\.jpg|\.jpeg|\.gif)"regexr.com上运行正常,但在命令行上没有。当我运行grep -o 'src=".*(\.png|\.jpg)' index.html时,上面的正则表达式得到零结果这是javascript正则表达式和我不知道的grep正则表达式之间的区别吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,grep使用较旧的,功能较弱的正则表达式引擎。使用egrep变体将提供与JavaScript提供的非常相似的行为。

此模式适用于我(调整原始grep):

egrep -o 'src=".*(\.png|\.jpg)' index.html

或(更好),只需使用-E标志:

grep -E -o 'src=".*(\.png|\.jpg)' index.html

来自another answer

  

-E将grep切换到特殊模式,以便将表达式计算为ERE(扩展正则表达式),而不是   正常模式匹配

linux.die.net

  

-E, - extended-regexp将PATTERN解释为扩展正则表达式(ERE,见下文)。 (-E由POSIX指定。)