我一直在嘗試刪除這樣的粗體字符:?????????? - New song如您所見,是一個沒有<b>標記的粗體文本。我試過這個,假設角色可能是一種表情符號,但我沒有任何運氣。$regex_emoticons = '/[\x{1F600}-\x{1F64F}]/u';$clear_string = preg_replace($regex_emoticons, '', $string);$regex_symbols = '/[\x{1F300}-\x{1F5FF}]/u';$clear_string = preg_replace($regex_symbols, '', $clear_string);$regex_transport = '/[\x{1F680}-\x{1F6FF}]/u';$clear_string = preg_replace($regex_transport, '', $clear_string);$regex_misc = '/[\x{2600}-\x{26FF}]/u';$clear_string = preg_replace($regex_misc, '', $clear_string);$regex_dingbats = '/[\x{2700}-\x{27BF}]/u';$clear_string = preg_replace($regex_dingbats, '', $clear_string);如何在沒有粗體的情況下將其刪除或替換為正確的字符?任何想法都會受到重視。
2 回答
HUX布斯
TA貢獻1876條經驗 獲得超6個贊
最初,我認為這將是一個大寫/小寫問題。您可能會使用您可能想要找出的正確 unicode 來遵循相同的規則。
您的表達式的一個問題可能是+可能丟失了。
我的猜測是,也許這個表達式可能有效:
([\x{0041}-\x{005A}]+)
如果一切都可能是大寫,或者可能是一些類似于以下的表達式:
([\x{0041}-\x{005A}]{2,})
如果我們只是想替換SONYA而不是S O N Y A.
在這個演示中,如果您可能感興趣,將解釋該表達式。
測試
$re = '/([\x{0041}-\x{005A}]+)/u';
$str = 'SONYA';
$subst = '\\L$1';
$result = preg_replace($re, $subst, $str);
echo $result;
- 2 回答
- 0 關注
- 204 瀏覽
添加回答
舉報
0/150
提交
取消
