我这样写了正则表达式
^[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]+$
哪个正在检查字符串是 symbol only
我使用检查器检查正则表达式是否正确。
然后我把它放到我的PHP代码中
$regex = "^[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]+$";
$regex = '^[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]+$';
我都试过了,但它不起作用,因为正则表达式中的引号将引号打断了。
我不想像他们那样吸引他们
$regex="{partA}".'"'."{partB}";
我认为这太难读而且不容易维护
我该如何解决这个问题?
由于正则表达式本身内部带有引号,因此两个正则表达式都会在PHP中产生语法错误。
如果您不想将正则表达式分为两个不同的部分,则最好的方法是使用反斜杠转义引号:
$regex = "^[-!$%^&*()_+|~=`{}\[\]:\";'<>?,.\/]+$";
$regex = '^[-!$%^&*()_+|~=`{}\[\]:";\'<>?,.\/]+$';
注意,后者是更可取的,因为双引号将解析存储在字符串中的所有变量。如果在$
和相应变量之后有任何文本,则该变量的内容将被注入到正则表达式中:
$sample = 'text';
$regex = "^[-!$%^&*()_+|~=`{}\[\]:\";'<>?,.\/]+$sample";
echo $regex;
// ^[-!$%^&*()_+|~=`{}\[\]:\";'<>?,.\/]+text
除此之外,使用单引号也稍快一些。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句