Regex 用最后一个字符验证正则表达式

Regex 用最后一个字符验证正则表达式,regex,Regex,有这样的正则表达式模式:ab*d为什么它会为输入返回匹配trueabbbde?如何将其更改为同时检查最后一个字符 您需要在模式末尾添加一个$,以确保它是最后一个字符ab*d$ $在正则表达式中称为字符串结束锚定符。你可以在这里阅读更多关于锚的内容让我们分析你的正则表达式: a-匹配“a” b*-匹配任意数量的b d-匹配a“d” 因为*匹配任意数量的b $匹配行尾,所以 ab*d$ 应匹配行尾(以确保后面没有任何内容) 然后再次\s将匹配任何空白,因此另一个选项是 ab*d\s 好的,很

有这样的正则表达式模式:
ab*d
为什么它会为输入返回匹配true
abbbde
?如何将其更改为同时检查最后一个字符

您需要在模式末尾添加一个
$
,以确保它是最后一个字符
ab*d$


$
在正则表达式中称为
字符串结束锚定符
。你可以在这里阅读更多关于锚的内容

让我们分析你的正则表达式:

a-匹配“a”

b*-匹配任意数量的b

d-匹配a“d”

因为*匹配任意数量的b

$匹配行尾,所以

ab*d$ 
应匹配行尾(以确保后面没有任何内容)

然后再次\s将匹配任何空白,因此另一个选项是

ab*d\s 

好的,很好,但是如果我在末尾加了$,它还会检查长度吗?因为现在ab*d$desn无法验证ABDGDGD,我认为*表示0个或更多任意字符..*表示前面字符的任意数量,那么如何执行0个或更多任意字符?b+表示任意字符的1个或更多个=[\s\s]*