[英]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.