在php中使用此正則表達式/^[\p{L}\p{N}. -/\\]+$/u
時,出現'使用模式時出現內部錯誤'錯誤。它希望匹配的字符串能夠包含反斜槓。
0
A
回答
2
$str = '\\'; // = \
$str = '\\\\'; // = \\ (this is what you need for your regex)
所以,知道,當前的正則表達式編譯爲:
/^[\p{L}\p{N}. -/\]+$/u
其轉義 「]」 字符,並打破了正則表達式。
此外,你的分隔符「/」和「 - 」應該在正則表達式中轉義。
修正版本:
$regex = '/^[\p{L}\p{N}. \\-\\/\\\\]+$/u';
3
您必須轉義類字符中的/
char或使用除/
之外的其他分隔符。
也可以跳過-
或將它放在char類的開始或結束處。
/^[\p{L}\p{N}. \-\/\\]+$/u
#^[\p{L}\p{N}. /\\-]+$#u
-1
大括號({}
)用於設置模式的出現次數。內括號應該是整數。另外,\p
不是有效模式,您必須在正則表達式中使用\
轉義\
和/
。
因此,如果您打算匹配\
後跟p
,那應該是\\p
。
而且,它完全讓我困惑,你爲什麼圍繞正則表達式有[]
?它是否打算成爲一個角色組?如果是這樣,爲什麼你裏面有兩個{}
呢?
那麼,你想與這種模式匹配的字符串是什麼?
0
我想你的模式應該是這樣的:在正則表達式模式
/^[\p{L}\p{N}. -\/\\\]+$/u
你忘了逃跑/和\字符,使用。
相關問題
- 1. 正則表達式\ p {L}和\ p {N}
- 2. PHP - 正則表達式 - PCRE不支持\ L,\升,\ N,\ P,
- 3. 爲什麼「\ p {L}」在這個正則表達式中不起作用?
- 4. 這個正則表達式中的?P代表什麼?
- 5. 這個正則表達式是什麼意思 - 「\ p {Lu}」?
- 6. 這個lambda表達式有什麼問題? 「U => ... && U => ...」
- 7. 在Java中,正則表達式模式「[\\ P {L}] +」是什麼意思?
- 8. 這個正則表達式有什麼問題?
- 9. 如何在Python正則表達式中實現\ p {L}
- 10. 這個JavaScript正則表達式有什麼問題?
- 11. 這個Perl正則表達式有什麼問題?
- 12. 這是什麼意思這個'(?U)'在nginx正則表達式
- 13. 這個awk正則表達式替換有什麼問題?
- 14. 正則表達式,這個RegEx有什麼問題?
- 15. ^[\ p {L} \ p {N}] {1,50} $ >>>加上一個規則
- 16. 正則表達式的空間問題 <p>有什麼幫助嗎?</p>
- 17. 這個正則表達式有什麼作用?常規
- 18. 這個正則表達式(VBScript/JavaScript flavor)有什麼問題?
- 19. 這個正則表達式有什麼問題?
- 20. 這個正則表達式有什麼問題?
- 21. 這個perl正則表達式有什麼問題?
- 22. 這個正則表達式有什麼問題:/(?:(?:^ | \ s)hide _([^ \ s] +))+ /?
- 23. 這個正則表達式有什麼問題?
- 24. 這個正則表達式有什麼問題?
- 25. 這個正則表達式有什麼問題? (「」使用)
- 26. PostgreSQL上的這個正則表達式有什麼問題?
- 27. 這個正則表達式有什麼問題?
- 28. 這個正則表達式有什麼問題?
- 29. 這個正則表達式有什麼問題?
- 30. 這個(mm-dd-yyyy)正則表達式有什麼問題?
它看起來很奇怪。 – cweiske
你想匹配什麼樣的模式? – Prisoner
需要更多反斜槓。 '/'應該被轉義,並且\\如果被寫入PHP字符串中則是兩次。如果錯誤確實表示「內部錯誤」,則可能與您的PCRE_VERSION不兼容。 – mario