正则表达式X•(Y*+Z)
接受单词X
吗?
我会说确实如此,因为Y=ε
应该实现分离,但我不确定。
是的,匹配 0 次仍然算作成功。
或者,从另一个方向看它,你的正则表达式生成
X
XY
XZ
XYY
XYYY
XYYYY
...
这个答案是假设你的正则表达式也可以表示为X.(Y*|Z)
除了你的原始X•(Y*|Z)
之外——如果这不正确,请解释•
应该做什么或代表什么。
X•(Y*|Z)
要求X
在Y*
或Z
可以匹配之前存在,但不会在匹配的特定捕获组结果中包含X
,而只会包含匹配行。如果要包含 X
,可以将其重写为 (X)•(Y*|Z)
并从捕获组 1 中提取X
,并在捕获组 2 中提取析取匹配项。