2 回答
TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊
標(biāo)準(zhǔn) POSIX 字符類通常捕獲字符類。如果您想匹配字符U+2002,那么只需完全匹配該字符,字面意思或使用您的編程語言支持的任何符號表示。
Python:
r = re.compile('\u2002')
if r.match(somestring):
...
當(dāng)然,您不需要正則表達(dá)式:
if '\u2002' in somestring:
...
(我猜你的意思是 U+2002;還有許多其他空格,其中沒有一個名稱完全包含“半空格”。[:space:]當(dāng)然,現(xiàn)代 POSIX 應(yīng)該匹配所有空格。)
更新:如果 PHP[:space:]不正確地 POSIX 和/或 Unicode 兼容,可能只需將代碼點(diǎn)添加到您的表達(dá)式中。
{$title|regex_replace:'/[^[:punct:][:alnum:][:space:]\x{2002}]/u':''}
(對一系列 unicode 點(diǎn) PHP 的正則表達(dá)式表示贊賞)
TA貢獻(xiàn)1895條經(jīng)驗 獲得超7個贊
在應(yīng)用實際的正則表達(dá)式之前,您可以將任何分隔符 ( \p{Z}) 替換為標(biāo)準(zhǔn)的完整空格。在這里按順序進(jìn)行:
preg_replace(['/(\p{Z})/', '[^[:punct:][:alnum:][:space:]]/u'], [' ', ''], $title)- 2 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報
