在玩字符串,正则表达式
*23
(解释:空格星号23)
去匹配
123
(解释:一堆空格23)
居然匹配上了
23
(解释:23)
我惊了!1怎么被断言掉了??难道空格星号除了空格的限定匹配,还有断言的作用?
从正则编译期上看,好像是既匹配,又断言
请问这是怎么回事?
你/ *23/是在匹配什么要清楚,是在匹配一个字符串是任意个空格+23
,因此在 许多个空格123
中去匹配,最终前面的都没匹配上,只匹配上了23这个字符串,23这个字符串代表0个空格+23
。如果使用/ +23/去匹配,+代表至少一个,那就匹配不到东西了。
没问题啊,/ *23/
只匹配了测试字符串中的23
,如果你要从行首开始匹配,你应该写成/^ *23/