\\ $DigitalSignature have full name value passed
$SignatureMatch = '/' . strtolower( $NameFirst . ' ' . $NameLast ) . '$/';
if( true == preg_match( $SignatureMatch, strtolower( $DigitalSignature ) ) )
{
$boolIsValid = true;
}
我有这个代码精确匹配的名字和姓氏匹配数字签名。但这给了我在生产(现场)错误日志中报告的错误。
preg_match(): Unknown modifier 'b'
我无法重现这个错误。我怎样才能先得到这个错误呢?以及如何解决此错误以进行精确匹配。
我已经看到很多这样的问题,但没有得到什么时候会得到这个错误。我该如何解决这个问题。我看到的许多问题中有一些是-
Warning: preg_match() [function.preg-match]: Unknown modifier
Unknown modifier in preg_match() statement
Warning: preg_match() [function.preg-match]: Unknown modifier
Unknown modifier 'l' error
Unknown modifier 'g' PHP regex error
Unknown modifier '/' in ...? what is it?
preg_match() Unknown modifier '[' help
Warning: preg_match() [function.preg-match]: Unknown modifier 'v'
PHP Preg_match match exact word
Unknown modifier 'v' when using preg_match() expression in regex
preg_match(); - Unknown modifier '+'
preg_match error Unknown modifier '{'
Unknown modifier '(' when using preg_match() with a REGEX expression
最佳答案
如果名字或姓氏包含/
,则正则表达式将类似于:
/john/doe$/
对于
preg_match
,这看起来像regex是/john/
,后面的doe$/
是修饰符。这些当然是无效的修饰符。您需要使用/
在正则表达式内部转义正则表达式分隔符(preg_quote
)。