preg_match(): 未知修饰符错误何时发生?

Som*_*luk 3 php regex preg-match exact-match

\\    $DigitalSignature have full name value passed
$SignatureMatch =  '/' . strtolower( $NameFirst . ' ' . $NameLast ) . '$/';
if( true == preg_match( $SignatureMatch, strtolower( $DigitalSignature ) ) )
{
    $boolIsValid = true;
}
Run Code Online (Sandbox Code Playgroud)

我有此代码用于与数字签名完全匹配的名字和姓氏匹配。但这给我在生产(实时)的错误日志中报告了错误。

preg_match(): Unknown modifier 'b'
Run Code Online (Sandbox Code Playgroud)

我无法重现此错误。我怎样才能首先得到这个错误。以及如何解决此错误以进行精确匹配。

我在 SO 上看到了很多问题,但没有得到什么时候会出现这个错误。我该如何解决。我看到的许多问题中的一些问题是-

  1. 警告:preg_match() [function.preg-match]:未知修饰符
  2. preg_match() 语句中的未知修饰符
  3. 警告:preg_match() [function.preg-match]:未知修饰符
  4. 未知修饰符“l”错误
  5. 未知修饰符 'g' PHP 正则表达式错误
  6. 未知修饰符 '/' in ...?它是什么?
  7. preg_match() 未知修饰符 '[' 帮助
  8. 警告:preg_match() [function.preg-match]:未知修饰符“v”
  9. PHP Preg_match 匹配精确的单词
  10. 在正则表达式中使用 preg_match() 表达式时出现未知修饰符“v”
  11. preg_match(); - 未知修饰符“+”
  12. preg_match 错误未知修饰符“{”
  13. 未知修饰符 '(' 将 preg_match() 与 REGEX 表达式一起使用时

dec*_*eze 5

如果名字或姓氏包含/,则您的正则表达式将类似于:

/john/doe$/
Run Code Online (Sandbox Code Playgroud)

To preg_match,这看起来像正则表达式 is /john/,尾随doe$/是修饰符。这些当然是无效的修饰符。您需要/使用preg_quote.


归档时间:

查看次数:

4479 次

最近记录:

7 年,2 月 前