Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 预匹配字母数字-'&引用;,和空白_Php_Regex - Fatal编程技术网

Php 预匹配字母数字-'&引用;,和空白

Php 预匹配字母数字-'&引用;,和空白,php,regex,Php,Regex,任何人都有一个正则表达式来允许字母数字和-“,”以及空格吗?试试这个: /^[A-Za-z0-9-_",'\s]+$/ 我在正则表达式中读了很多关于\s标志的内容,我看到它像糖果一样在stackoverflow上分发,但是似乎\s标志与所有元字符都匹配,并且跳过换行符 这将允许忽略您不希望在软件、网站或数据库中使用的所有类型字符的过滤用户输入 \s标志还跳过新行分隔符,使过滤后的代码容易被包含,因此使用此方法的风险由您自己承担,否则会导致愉快的黑客攻击lol 你可以考虑这样的事情: /[^ p

任何人都有一个正则表达式来允许字母数字和-“,”以及空格吗?

试试这个:

/^[A-Za-z0-9-_",'\s]+$/

我在正则表达式中读了很多关于\s标志的内容,我看到它像糖果一样在stackoverflow上分发,但是似乎\s标志与所有元字符都匹配,并且跳过换行符

这将允许忽略您不希望在软件、网站或数据库中使用的所有类型字符的过滤用户输入

\s标志还跳过新行分隔符,使过滤后的代码容易被包含,因此使用此方法的风险由您自己承担,否则会导致愉快的黑客攻击lol

你可以考虑这样的事情:<代码> /[^ p{xAN}] ++$/d < /代码>

  • \p{Xan}
    匹配所有unicode字母和数字,如果这
    不允许所有字母空白,那么我不确定如何安全 为过滤器匹配这些

  • ++
    使用所有格量词来帮助优化 比赛

  • $/D
    导致正则表达式在字符串末尾终止,而不是 在换行之前跳过任何字符

\s旗:

参考:

s(PCRE_DOTALL) 如果设置了此修饰符,则模式中的点元字符将匹配所有字符,包括换行符。如果未设置此修饰符,则换行符将被删除 排除。此修饰符相当于Perl的/s修饰符。A 像[^a]这样的负类总是匹配换行符, 与此修改器的设置无关

元字符:

参考:

元字符是具有特殊含义的字符(而不是 (字面意思)指计算机程序,如shell解释器 或者正则表达式引擎

在正则表达式中,有11个元字符必须始终 前加反斜杠\,用于表达式内部:

开头的方括号[,反斜杠\,插入符号^,美元 符号$,句号或圆点,竖条或管道符号|,符号 问号?,星号或星号*,加号+,开口 圆括号(和结束圆括号)。[1]

如果要将这些字符中的任何一个用作正则表达式中的文字, 您需要用反斜杠将其转义。如果要匹配1+1=2, 正确的正则表达式是1+1=2。否则,加号将有一个 特殊意义


“允许”是指与您所说内容相匹配的表达式,还是与除您所说内容以外的所有内容相匹配的表达式?我的意思是,任何不匹配的内容都会导致异常。基本上,我只需要纯文本和-"“,”来遍历并阻止任何其他内容。舔[]标记之类的东西。不,我使用以下$pattern=“/^[A-Za-z0-9-389;,'\s]+$/”如果($string&&preg\u match($pattern,$string))PHP退出-语法错误,意外',“尝试转义正则表达式中的单引号和双引号:
/^[A-Za-z0-9-389;,\'\s]+$/
是介于
9
-
之间的
-
用于匹配文字
-
?如果是这样,将其放在类的开头或结尾可能会使表达式更适合其他语言。@Tim:如果文字
-
不在字符的开头或结尾,哪种语言不识别它ter class?@Gumbo,是的,可能在所有的PCRE风格中,如果前面有字符范围或速记字符类,则不必跳过连字符。但是,在我看来,(1)放在字符类的开头或结尾时更容易理解,(2)如果需求发生变化,并且删除了
0-9
部分,那么如果
-
突然被视为范围操作符,则错误可能会在正则表达式中蔓延。