如何从String中删除Unicode字符?

时间:2014-07-10 09:57:34

标签: php python regex unicode

我需要一个正则表达式代码来删除表情符号符号(基本上是任何unicode字符),除了日语,韩语,中文,越南语和任何其他使用unicode字符的语言。正则表达式将用于php和Python服务器。我注意到我对使用表情符号键盘创建一些奇怪名字的iPhone用户有疑问。

到目前为止,我已经尝试了一些正则表达式,但我找不到合适的正则表达式。 enter image description here

下面是我自己用于测试的文本字符串。请注意,我不知道其他英文字符的含义是什么。如果它是一个坏词,请更改

abcdefghij
klmnopqrst
uvwxyz
1234567890
한국 韓國
‎Công Ty Cổ Phần Hùng Đức
南极星 
おはようございます
============== Below characters should be detected by regex ========
™£¢£¢§¢∞§¶•§ª§¶
[]{}"';?><_+=-
()*&^%$#@!~`,.
4️⃣⌘
❤❣☁♫

2 个答案:

答案 0 :(得分:0)

所有符号都与\p{S}正则表达式匹配。您只需要确保您的PHP处于UTF-8模式(无论这意味着什么,我都不做PHP) - 请参阅http://php.net//manual/pl/regexp.reference.unicode.php - 对于Python,您需要一个替代的正则表达式库:{{3 }}

答案 1 :(得分:0)

你可能会发现正则表达式并不是所有指甲的锤子。在这种情况下,您只想排除字符,因此它可能不是。

在Python 3中,字符串translate()方法很有用:如果您将要排除的字符映射到None,它们确实会从结果中排除。

不幸的是,此方法仅适用于ASCII字符串,并采用256个字符的字符串作为其映射表。但是,你可以用Python编写一个类似的alogirthm,但它不会那么高效。

PS:没有&#34;坏词&#34;在你的文字中。