Javascript 在/^.*x/.exec(“abcdxsdx”)中到底发生了什么
这个问题太具体了,我在论坛上找不到。我的控制台记录“abcxdex”,匹配整个字符串。我很困惑,因为对我来说,这意味着从头开始,我们将寻找。那不是也可以吗。我对这件事还不熟悉,但我争论的两种解释方式显然都是错误的(请将字符2视为x,或者忘记“^”部分,并将从字符2开始的表达式视为/x/,因为任何起始字符都可以工作。我认为*意味着它所绑定的字符可以从0到无限次出现。因此,如果发现“.”不存在,则下一个字符需要是x,如果“^”是强制的。请用您的话解释一下是什么这个表达式的方法实际上是这样的 我认为*意味着它所绑定的字符可以在0到无限次之间出现。因此,如果发现“.”不存在,则下一个字符需要是x,如果^Javascript 在/^.*x/.exec(“abcdxsdx”)中到底发生了什么,javascript,regex,Javascript,Regex,这个问题太具体了,我在论坛上找不到。我的控制台记录“abcxdex”,匹配整个字符串。我很困惑,因为对我来说,这意味着从头开始,我们将寻找。那不是也可以吗。我对这件事还不熟悉,但我争论的两种解释方式显然都是错误的(请将字符2视为x,或者忘记“^”部分,并将从字符2开始的表达式视为/x/,因为任何起始字符都可以工作。我认为*意味着它所绑定的字符可以从0到无限次出现。因此,如果发现“.”不存在,则下一个字符需要是x,如果“^”是强制的。请用您的话解释一下是什么这个表达式的方法实际上是这样的 我认为*
在正则表达式中有特殊含义。它匹配任何字符(除换行符外)
^
还有一个特殊的含义。它意味着表达式必须在字符串开头匹配
像*
这样的量词是贪婪的。它们试图尽可能多地匹配,即尽可能多地重复
因此,^.*x
意味着:从字符串开始,匹配尽可能多的字符,然后是x
abcxdex
^
这些步骤大致如下:
^
abcxdex
^
这很简单,因为每个字符串都有一个开头*
abcxdex
^
abcxdex
^
也很简单,因为*
匹配所有内容x
不匹配!没有要匹配的字符。我们需要返回,让量词匹配得更少*
abcxdex
^
abcxdex
^
匹配子字符串abcxde
x
abcxdex
^
这次比赛成功了网上有很多关于正则表达式的资源:
x
。点是正则表达式语法的一部分。这里不是字符。