数学字母数字符号的正则表达式

我一直在尝试删除这样的粗体字符:


𝐒𝐎𝐍𝐘𝐀 - 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);

如何在没有粗体的情况下将其删除或替换为正确的字符?任何想法都会受到重视。


慕沐林林
浏览 178回答 2
2回答

HUX布斯

最初,我认为这将是一个大写/小写问题。您可能会使用您可能想要找出的正确 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;
打开App,查看更多内容
随时随地看视频慕课网APP