这看起来像是一个基本的东西,但我无法理解。
字符串: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', '']