允许使用双引号的Preg匹配


Preg match that allows double quotation marks

正在从API返回结果。

当前使用正确的preg_match表达式有2个问题

第一个是用于关键字搜索。我需要允许a-zA-Z和双引号,因为它允许精确的短语搜索,即"销售经理"

这是我现在的东西,行吗?我相信,如果一个特殊的角色在一个班级里,那么我就不需要逃避它了?在《崇高2》中,彩色文本似乎让我错了。

if (!preg_match("/^[a-zA-Z "]*S/", $query)) {
            //do this
        }

第二个是按位置搜索,我需要允许a-zA-Z0-9和逗号。ie)Syracuse,NY或邮政编码。

if (!preg_match("/^[a-zA-Z0-9,',]*S/", $location){
            //do this
        }

所以我找到了一个很好的regex测试工具,它绝对可以帮助像我这样的初学者。

http://www.phpliveregex.com

马里奥是正确的,它确实需要逃跑。

以下是对我有效的方法:

搜索

if (!preg_match("/[a-zA-Z '"]*'S[a-zA-Z '"]/", $query)) {
        //do this
    }

位置

if (!preg_match("/[a-zA-Z0-9 ,.]*'S[a-zA-Z0-9 ,.]*'S[a-zA-Z0-9 ,.]/", $location){
        //do this
    }

我添加了一个句点作为另一个字符,以防出现以圣开头的城市

感谢@Mario的解释。