[英]what's wrong with this regex /^[\p{L}\p{N}. -/\\]+$/u
使用此正则表达式/^[\\p{L}\\p{N}. -/\\\\]+$/u
/^[\\p{L}\\p{N}. -/\\\\]+$/u
在php中,出现“使用模式时发生内部错误”错误。 它希望匹配的字符串能够包含反斜杠。
您必须在类字符中转义/
char或使用/
以外的其他定界符。
也可以对-
转义,或者将其放在char类的开头或结尾。
/^[\p{L}\p{N}. \-\/\\]+$/u
#^[\p{L}\p{N}. /\\-]+$#u
$str = '\\'; // = \
$str = '\\\\'; // = \\ (this is what you need for your regex)
因此,知道了,您当前的正则表达式将编译为:
/^[\p{L}\p{N}. -/\]+$/u
转义“]”字符并中断正则表达式。
同样,您的分隔符“ /”和“-”也应在正则表达式内转义。
更正的版本:
$regex = '/^[\p{L}\p{N}. \\-\\/\\\\]+$/u';
我想您的模式应如下所示:
/^[\p{L}\p{N}. -\/\\\]+$/u
您忘记使用正则表达式模式转义/和\\字符。
花括号( {}
)用于设置模式的出现。 大括号内应为整数。 同样, \\p
不是有效的模式,您必须在正则表达式中使用\\
转义\\
和/
。
因此,如果要匹配\\
后跟p
,则应该为\\\\p
。
而且,这完全使我感到困惑,为什么您在正则表达式中有[]
? 是否打算成为角色组? 如果是这样,为什么里面有两个{}
?
那么,您要与此模式匹配的字符串是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.