如何使用preg_match

时间:2018-07-01 10:50:54

标签: php regex

preg_match('/"\'<>&/', 'misiek"')

为什么不起作用?

2 个答案:

答案 0 :(得分:1)

如评论中所述-完全按照您的指示进行。就您而言,您只需检查您提供的字符串是否包含确切的子字符串:“ \'<>&任何位置。

因此对于您的模式,以下字符串将导致匹配:

  • “'<>&

  • LOREM“'<>&IPSUM

由于这两个都包含您搜索的模式。但是, LO“ R'EM <> IPS&UM 不会返回匹配项,因为您不是在检查单个字符,而是只检查完整模式。

如果您将模式更改为:

/["\'<>&]/

您改为查找字符列表。如果找到用括号括起来的任何字符,则将返回true。

  • misiek -在这种情况下将不匹配

  • LO“ R'EM <> IPS&UM -将匹配

  • mis&iek -会匹配

您可以测试您的正则表达式模式并在此站点上构建它们:

https://regex101.com

您还将找到可以使用的可用修饰符以及使用它们的方式/原因。

祝你好运!

答案 1 :(得分:0)

我正在猜测:是否要匹配包含至少一个正则表达式中列出的字符的字符串?在这种情况下,您应该执行以下操作:

$res=preg_match('/["\'<>&]/' , 'misiek"');

结果应为正数($res===1),请参见此处:  http://rextester.com/KYNGYI23753