C# 从字符串中删除额外的文本和标点符号,只保留微笑?
我在使用正则表达式时遇到了一些问题。你能帮帮我吗?下面是我试图解决的问题- 输入:,…:你今天好吗(* 输出:D:):p:( 基本上,我想删除输入字符串中的标点符号和文本,比如-(,:;等),并用空字符串替换它们。但我想保留微笑-:),:(或:p。我已经编写了以下代码,但它不起作用 Regex=“[A-Za-z]|:[D(p(]””C# 从字符串中删除额外的文本和标点符号,只保留微笑?,c#,regex,emoticons,C#,Regex,Emoticons,我在使用正则表达式时遇到了一些问题。你能帮帮我吗?下面是我试图解决的问题- 输入:,…:你今天好吗(* 输出:D:):p:( 基本上,我想删除输入字符串中的标点符号和文本,比如-(,:;等),并用空字符串替换它们。但我想保留微笑-:),:(或:p。我已经编写了以下代码,但它不起作用 Regex=“[A-Za-z]|:[D(p(]”” 但它也删除了“:D和:p”smilie。不太完美的解决方案: string text = ":,... :D..:::))How are you today :P?
但它也删除了“:D和:p”smilie。不太完美的解决方案:
string text = ":,... :D..:::))How are you today :P?..:(*";
text = text.Replace(":)", "@@@)");
text = text.Replace(":D", "@@@D");
text = text.Replace(":P", "@@@P");
// clean up your punctuation marks here
//
text = text.Replace("@@@)", ":)");
text = text.Replace("@@@D", ":D");
text = text.Replace("@@@P", ":P");
不太完美的解决方案:
string text = ":,... :D..:::))How are you today :P?..:(*";
text = text.Replace(":)", "@@@)");
text = text.Replace(":D", "@@@D");
text = text.Replace(":P", "@@@P");
// clean up your punctuation marks here
//
text = text.Replace("@@@)", ":)");
text = text.Replace("@@@D", ":D");
text = text.Replace("@@@P", ":P");
以下正则表达式字符串应适用于您:
(((?<!:)[^:])|(:(?![PD\(\)])))[^:]*
(?
它由两部分组成:
(((?|(:(?![PD\(\)]))
)
[^:::*
第一部分是使用的OR(|
)语句。它通过查找以下任一项来查找不包含笑脸的文本块中的第一个字符:
一个明显不是笑脸的角色:
任何前面没有冒号的字符:(?)
并且本身不是冒号:[^::
或不后跟笑脸字符的冒号:
冒号:
后面不是笑脸的后半部分:(?![PD\(\)])
第二部分([^::::]*
)继续查找,直到找到一个可能的笑脸(冒号)的开头
此正则表达式当前仅查找以下smiley:
- :D
- :P
- :(
- :)
您可以更新OR语句的后半部分以查找其他笑脸
总而言之,这个正则表达式应该找到所有不属于笑脸的部分。您只需在变量中声明它,然后调用,传入输入字符串和要用(string.Empty
)替换非笑脸字符的字符串。以下正则表达式字符串应该适合您:
(((?<!:)[^:])|(:(?![PD\(\)])))[^:]*
(?
它由两部分组成:
(((?|(:(?![PD\(\)]))
)
[^:::*
第一部分是使用的OR(|
)语句。它通过查找以下任一项来查找不包含笑脸的文本块中的第一个字符:
一个明显不是笑脸的角色:
任何前面没有冒号的字符:(?)
并且本身不是冒号:[^::
或不后跟笑脸字符的冒号:
冒号:
后面不是笑脸的后半部分:(?![PD\(\)])
第二部分([^::::]*
)继续查找,直到找到一个可能的笑脸(冒号)的开头
此正则表达式当前仅查找以下smiley:
- :D
- :P
- :(
- :)
您可以更新OR语句的后半部分以查找其他笑脸
总而言之,这个正则表达式应该找到所有不属于笑脸的字符。您只需在变量中声明它,然后调用,传入输入字符串和要用(string.Empty
在本例中为空)替换非笑脸字符的字符串.你是不是在保留笑脸?笑脸是不是在输入字符串中唯一保留的东西?情绪…唯一重要的表达方式。你是不是在保留笑脸?笑脸是不是在输入字符串中唯一保留的东西?情绪…唯一重要的表达方式。