我一直在尝试删除这样的粗体字符:𝐒𝐎𝐍𝐘𝐀 - 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 关注
- 177 浏览
添加回答
举报
0/150
提交
取消