I seem to have confused myself with a preg_match regex I\'m doing, so fresh eyes and help would be appreciated.
My current regex is as follows:
/<
Like this:
/<!--menu:start(?::\((\d),(\d)\))?-->(.*?)<!--menu:end-->/se
I've added a non-capturing group, (?: )
, around the part you want to be optional, and then suffixed it with a question mark: (?:<optional content>)?
This uses an optional non-capturing group -- (?: )?
-- to match your optional part, and also \d
instead of [0-9]
to match digits:
/<!--menu:start(?::\((\d),(\d)\))?-->(.*?)<!--menu:end-->/se
If numbers in parentheses can consist of more than one digit, use this one instead:
/<!--menu:start(?::\((\d+),(\d+)\))?-->(.*?)<!--menu:end-->/se
Enclose with a non matching group and set it to optional : (?:...)?
/<!--menu:start(?::\(([0-9])\,([0-9])\))?-->(.*?)<!--menu:end-->/se