-3
我试图建立正则表达式,消除*
和=
或从结束的字符串的它们的任意组合,所以我试图,但它是懒,例如,如果我有字符串this is a dog =*
,那么它将删除*
并保留=
,然后我尝试了正则表达式[*=]+$
,它做了这项工作,但我不明白如何正则表达式引擎将与最后一个正则表达式或换句话说,这个正则表达式如何变得贪婪。
我试图建立正则表达式,消除*
和=
或从结束的字符串的它们的任意组合,所以我试图,但它是懒,例如,如果我有字符串this is a dog =*
,那么它将删除*
并保留=
,然后我尝试了正则表达式[*=]+$
,它做了这项工作,但我不明白如何正则表达式引擎将与最后一个正则表达式或换句话说,这个正则表达式如何变得贪婪。
请注意,+
重复上一个标记一次或多次。所以[*=]+
匹配最后一个或多个符号*
或=
。
在后台发生的是,在第一[*=]
所有*
或=
符号(匹配连续字符)相匹配。在正则表达式引擎看到char类旁边的+
后,它就开始匹配以下*
或=
符号。最后,一旦看到行结束符$
的末尾,除最后一个以外的所有匹配都将被正则表达式引擎丢弃。现在,你离开最后一场比赛(匹配存在于一行的末尾)。
注意''+重复上一个标记一次或多次。因此,'[* =] +'匹配最后存在的一个或多个'*'或'='符号。 –
使用https://regex101.com/如果你想尝试正则表达式,或任何其他正则表达式测试 – Slasko