I am working on a database trying to get those rows that match the condition: begin with integer / AONO / any string / end with a year (integer). Examples of such rows include:
In postgres, I used the following condition in my query:
where reference_consultation ~* '^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$'.
The query works, but when trying to have the condition in php using preg_match as though:
if (preg_match('/^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$/',$reference)) {
return true;
}
else
return false;
even for matching references I get false
preg_match('/^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$/', $reference)
You are using /
as your delimter, yet using it in the regex too.
You need to either escape them within the regex
preg_match('/^([0-9]*)+[\/]AONO[\/].*[\/]([0-9]*)+$/', $reference)
Or use different delimiters
preg_match('~^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$~', $reference)