Linux grep命令中的混乱

Ric*_*eek 1 grep

我对grep有一个非常基本的困惑.假设我有一个以下文件要grep:

test.txt:
This is an article 
from some newspaper
Article is good 
newspaper is not.
Run Code Online (Sandbox Code Playgroud)

现在如果我用下面的表达式grep

grep -P "is\s*g" test.txt
Run Code Online (Sandbox Code Playgroud)

我得到了这条线:

Article is good
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

grep -P "is*g" test.txt
Run Code Online (Sandbox Code Playgroud)

我什么都没得到.我的问题是因为asterix(*)是一个表示前一个字符重复0次或更多的通配符,所以grep的输出不应该相同.为什么"s"的零次或多次重复没有给出任何输出?

我在这里想念的是什么 谢谢您的帮助!

hob*_*bbs 8

因为没有什么在你的输入匹配i,则0次或多次重复s,那么g."文章好"是无法比拟的,因为它有一个空格s,而不是一个g.模式is\s*g匹配是因为它\s是一种匹配任何类型的空白的特殊模式 - 因此整体模式是is,然后任何数量的空间,然后g自然匹配"是g".