grep "http://.*.jpg" index.html -o
从 http://开始,并以 .jpg
结尾。如此:grep "http://.*.(jpg)" index.html -o
有什么区别?是否有任何可能失败的条件?
我使用此正则以下条件匹配JPG,PNG或GIF:
http://.*.(jpg|png|gif)
与我阅读的反向注册或正则分组有关。无法理解此部分()
分组用于两个正则表达式。
使用替代方案时,一种用途是界定正则分散的部分。在您的第三条言论中就是这种情况,它使您可以说扩展名可以是JPG,PNG或GIF。
。另一种用途是用于反向提示。这使您可以参考与REGEXP稍后在RegexP中的较早部分相匹配的文本。例如,以下REGEXP匹配连续两次出现的任何字母:
([a-z])1
backreference 1的意思是"匹配匹配Regexp中的第一组的任何匹配"。
(
和 )
是 metacharacters 。即它们不匹配自己,但对grep
表示含义。
从这里:
进行分组,并进行反斜杠,然后是括号'(’ ')’。
因此,在上面的(
和)
中定义了一组由|
字符隔开的可能性。即您的文件名扩展。