Does the kleene-star's potence 0 fulfill a disjunction?

60 views Asked by At

Does the regular expression X•(Y*+Z) accept the word X?

I would say it does, as Y=ε should fulfill the disjunction, but I'm not sure.

2

There are 2 answers

0
melpomene On BEST ANSWER

Yes, matching 0 times still counts as success.

Or, looking at it from the other direction, your regex generates

X
XY
XZ
XYY
XYYY
XYYYY
...
1
kayleeFrye_onDeck On

This answer is assuming that your regex could also be represented as X.(Y*|Z) in addition to your original of X•(Y*|Z) -- if that is not correct, please explain what is supposed to do or represent.

X•(Y*|Z) necessitates that X be present before Y* or Z can match, but will not include X in the match's specific capture-group results, only the matching line. If you wanted to include X, you might re-write it as (X)•(Y*|Z) and extract X from capture group 1, and your disjunction match in capture group 2.