我正在研究一个数据库,试图获取符合条件的那些行:以integer / AONO开头/任何带有年份(整数)的字符串/结尾。此类行的示例包括:
在postgres中,我在查询中使用了以下条件:
where reference_consultation ~* '^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$'.
查询有效,但是当尝试使用preg_match在php中使用条件时,就好像:
if (preg_match('/^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$/',$reference)) {
return true;
}
else
return false;
即使是匹配参考我也会得到假
答案 0 :(得分:1)
preg_match('/^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$/', $reference)
您使用/
作为分隔符,但也在正则表达式中使用它。
您需要在正则表达式中将它们转义
preg_match('/^([0-9]*)+[\/]AONO[\/].*[\/]([0-9]*)+$/', $reference)
或使用不同的分隔符
preg_match('~^([0-9]*)+[/]AONO[/].*[/]([0-9]*)+$~', $reference)