簡體   English   中英

這個正則表達式/ ^ [\\ p {L} \\ p {N}有什么問題。 - / \\\\] + $ / U

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM