为什么regex[a-z]*不处理字符串“the”中的任何内容



这看起来像是一个基本的东西,但我无法理解。

字符串:The

为什么正则表达式[a-z]+he匹配,而正则表达式[a-z]*根本不匹配?我的看法是,由于量词*匹配零次或多次,因此它应该与上一个例子中的+(即he)匹配。为什么量词+能够处理大写"T"之后的字符串,而量词*却不能?

编辑:关于Regex工具,我只是使用了在线资源,网址是:http://regexr.com/和https://regex101.com/

这个问题很难回答,但我的猜测是:[a-z]*多个匹配:T之前有一个空字符串,其余的,即he。你可能只看到第一场比赛。

对于[a-z]+,第一个(也是唯一一个)匹配是he

根据您使用的语言/工具,可能会有不同的功能来获取第一个匹配项,或获取所有匹配项。以下是Python中的一个示例:

>>> re.search("[a-z]*", "The").group()
''
>>> re.findall("[a-z]*", "The")
['', 'he', '']

相关内容

最新更新