0

如果我有诸如“我爱我的国家 :) :D. 我喜欢我自己 :P -_- 。”之类的字符串,如何删除除表情符号之外的所有内容 - 所以生成的字符串应该没有任何文本?输入字符串或文本可以是任何类型。

我正在使用正则表达式

Regex.Replace(str, "[A-Za-z]", "");

但它也删除了“:D:P”笑脸中的“P”“D”。那么正则表达式会是什么?

提前致谢。

4

1 回答 1

0

有很多表情符号,所以你会的。以一个非常长且过于复杂的正则表达式 but 结尾。在这种情况下,我认为您只关心替换后的两个“损坏”表情符号。因此,如果是这种情况,这应该有效:

[ABCE-OQ-Za-oq-z]|(?<!:)D|(?<!:)[Pp]

这个正则表达式匹配 ABC,从 E 到 O 的范围,然后是从 Q 到 Z 的小写字母它匹配从 a 到 o 和从 q 到 z 的范围。正则表达式的关键部分是它只匹配 D、P 和 p,如果匹配的 char 前面没有冒号。此功能称为环视(或在此确切用例中为环视)。

于 2013-05-21T13:21:20.167 回答