问题对我来说太具体了,无法在论坛中找到。我的控制台记录" abcxdex",匹配整个字符串。我感到困惑,因为对我来说,这意味着从一开始就开始,我们会寻找。+或者如果。不存在也没关系。我对这个东西不熟悉,但是我辩论的两种方式显然都是错误的(或者看x的字符2,或者忘记^部分并将字符2中的表达式视为/ x /,因为任何我认为*意味着它所绑定的角色可以发生在0到无限次之间。所以在发现不存在之后,如果^被强制要求下一个角色必须是x。请用你的话解释什么是这个表达式的方法实际上是在做。
答案 0 :(得分:2)
我认为*意味着它所绑定的角色可以从0到无限次发生。所以之后。发现不存在,下一个字符需要是x,如果^是强制的
.
在正则表达式中具有特殊含义。它匹配任何字符(期望换行符)。
^
也有特殊含义。这意味着表达式必须在字符串的开头匹配。
*
等量词是贪心。他们尝试尽可能多地匹配很多,即尽可能多的重复。
因此,^.*x
表示:从字符串的开头,匹配尽可能多的字符,然后是x
。
这些大致是步骤:
匹配^
abcxdex
^
这很简单,因为每个字符串都有一个开头。
匹配.*
abcxdex
^
同样简单,因为.*
匹配所有内容。
匹配x
不匹配!没有可匹配的字符。我们需要回过头来让量词匹配得更少。
匹配.*
abcxdex
^
匹配子字符串abcxde
。
匹配x
。
abcxdex
^
这次比赛成功。
完成。表达式中没有任何内容可供匹配。
网上有很多关于正则表达式的资源: