正则表达式:删除表情符号以外的所有内容。怎么样?

时间:2013-05-21 13:09:50

标签: c# regex sentiment-analysis emoticons

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

我正在使用正则表达式

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

有很多表情符号所以你会这样。以非常漫长而复杂的正则表达结束但是。在这种情况下,我认为你只关心替换后的两个'腐败'表情符号。因此,如果是这种情况,这应该有效:

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

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