再发一贴,求一个比较难的正则,但是我没什么分了,请见谅.

LoveCcav 2010-10-12 01:33:20
有这么一个字符串 ":|:*:P sdfsf(blush)sf:^)测试一不念旧jkdsflk |-)sdfdf|-(safd(inlove)"
其中包括一些表情代码, 表情代码以 ascii(29)开始和结束

求一正则, 或者其他方法 , 把里面的表情代码抽取出来..谢谢..

...全文
126 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveCcav 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 snopo 的回复:]
这样是否可行?

C# code
(?<=\x1D)[^\u4e00-\u9fa5]+?(?=\x1D)
[/Quote]

谢谢, 你给的两个正则都很可以使用

也谢谢逍遥哥, 真抱歉, 只剩17分,不能开新贴, 以后一定散分...
兔子-顾问 2010-10-12
  • 打赏
  • 举报
回复
(?is)(?<=\x1D).+?(?=\x1D)
snopo 2010-10-12
  • 打赏
  • 举报
回复
或者这样:

(?<=\x1D)(?![\u4e00-\u9fa5]{2,}).*?(?=\x1D)
snopo 2010-10-12
  • 打赏
  • 举报
回复
这样是否可行?
(?<=\x1D)[^\u4e00-\u9fa5]+?(?=\x1D)
LoveCcav 2010-10-12
  • 打赏
  • 举报
回复
没有考虑到两个表情连续的情况 , 仔细看了一下, 两个表情代码如果连接,他们之间只有一个 Ascii为29的字符,
比如: "测试(wait)(happy)再测试一下8-|"

测试代码:

            
string test = "测试(wait)(happy)再测试一下8-|";
Regex reg = new Regex(@"\x1D.*?\x1D");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}



输出的是 "(wait)", "再测试一下", 而实际上想得到的结果是: "(wait)", "(happy)", "8-|", 高手们再帮忙看看.谢谢.
LoveCcav 2010-10-12
  • 打赏
  • 举报
回复
谢谢几位, 呵呵...
-过客- 2010-10-12
  • 打赏
  • 举报
回复
这样?

string test = ":|:*:P sdfsf(blush)sf:^)测试一不念旧jkdsflk |-)sdfdf|-(safd(inlove)";
Regex reg = new Regex(@"\x1D.*?\x1D");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*-----输出-------
:|
:P sdfsf
sf:^)
|-(
*/
兔子-顾问 2010-10-12
  • 打赏
  • 举报
回复
如果29是十六进制
(?is)\x29.+?\x29
如果29是十进制
(?is)\x1D.+?\x1D
LoveCcav 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 q107770540 的回复:]
ASCII码为 29的字符 是什么?
[/Quote]

把我在1楼发的那个字符串, 复制到记事本里面, 看能够看到了, 也可以粘贴到VS里面, 只不过不会显示出来, 比如:
string s = "(cash)(flex)";
byte[] b= Encoding.Unicode.GetBytes(s);

看看第12个就知道了.
q107770540 2010-10-12
  • 打赏
  • 举报
回复
ASCII码为 29的字符 是什么?
LoveCcav 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
ascii(29) ?
[/Quote]

比如说 有个表情的符号代码是 ":)" , 在这个字符串的前后, 都有一个 ASCII码为 29的字符
q107770540 2010-10-12
  • 打赏
  • 举报
回复
ascii(29) ?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧