正则匹配遇到了空格星号问题

问题遇到的现象和发生背景

在玩字符串,正则表达式

 *23

(解释:空格星号23)
去匹配

                123

(解释:一堆空格23)

居然匹配上了

23

(解释:23)

img

我惊了!1怎么被断言掉了??难道空格星号除了空格的限定匹配,还有断言的作用?
从正则编译期上看,好像是既匹配,又断言

img

请问这是怎么回事?

你/ *23/是在匹配什么要清楚,是在匹配一个字符串是任意个空格+23,因此在 许多个空格123中去匹配,最终前面的都没匹配上,只匹配上了23这个字符串,23这个字符串代表0个空格+23。如果使用/ +23/去匹配,+代表至少一个,那就匹配不到东西了。

没问题啊,/ *23/只匹配了测试字符串中的23,如果你要从行首开始匹配,你应该写成/^ *23/