正则表达式引擎如何适用于" [* =] + $"

时间:2015-12-15 06:47:17

标签: regex

我正在尝试构建正则表达式,从字符串的 end 中删除*=或它们的任意组合,所以我尝试{{1但是它很懒,例如,如果我有字符串"[*=]$",那么它将删除this is a dog =*并保留*,然后我尝试了正则表达式=,它完成了这项工作,但我无法理解正则表达式引擎如何与最后一个正则表达式一起工作,换句话说,这个正则表达式如何变得贪婪。

1 个答案:

答案 0 :(得分:0)

请注意+重复前一个标记一次或多次。因此[*=]+匹配最后一个或多个*=个符号。

在后台发生的事情是,首先[*=]匹配所有*=符号(匹配连续字符)。一旦正则表达式引擎看到char类旁边存在的+,它就会开始匹配以下*=符号。最后,一旦它看到行锚$的结束,除了最后一个匹配之外的所有匹配将被正则表达式引擎丢弃。现在,您离开了最后一场比赛(匹配存在于一行)。