【发布时间】:2018-01-19 01:20:53
【问题描述】:
我有几个包含 unicode 的字符串。我的任务是从这些字符串中删除除 unicode 之外的所有内容,例如,在下面
\ud83d\ude82 + \u2600\ufe0f = \ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29
会变成
\ud83d\ude82 \u2600\ufe0f \ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29
然后我需要寻找重复的代码,并将它们分开,以便:
\ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29\ud83d\ude29
变成:
\ud83d\ude29 \ud83d\ude29 \ud83d\ude29 \ud83d\ude29 \ud83d\ude29
我已经为第一位尝试了几个 preg_match 解决方案,但它要么不会从字符串中删除任何字符,要么会删除所有内容。下面是最新的尝试,
/(^\\\u[0-9a-f]{4})+/
对正则表达式不太熟悉,我开始困惑地挠头,因为我不确定还能尝试什么。
这样最终,我可以将每个 unicode 作为自己的记录插入到数据库中。
【问题讨论】:
-
我认为第一步可以使用 RegEx 完成。但是如何找到重复代码?您只是展示了一个示例,而不是描述规则。对我来说,我认为规则应该将字符串与每两个 unicode 子字符串分组?
标签: php unicode preg-replace preg-match