Why with this regex
https://regex101.com/r/wYUZCO/1
(category\s (\w ))(\s*=\s*)?(?:\s (\w ))?(?:\s (\w ))?
I can match
category fruits pear orange
but not
category fruits = pear orange
CodePudding user response:
You're matching the space after = twice; first using \s* after the = in your regex, and then with \s on (?:\s (\w )).
You could resolve this easily in many different ways, but this one is probably the simplest:
(category\s (\w ))(\s*=\s*)?(?:\s*(\w ))?(?:\s (\w ))?
(note, I changed (?:\s (\w )) to (?:\s*(\w )), in order to match a space 0 times instead of 1 times.)
