正则表达式一问

csz_1987 2010-03-25 10:13:44
待处理的字符串
                           生活指数预报
1月6日
平均相对湿度:75%
人体舒适度等级:3级,感觉冷
紫外线等级:2级,辐射强度较弱
晨练指数:2级,适宜晨练
森林火险等级:4级容易引起森林火灾林区严格控制野外用火!

预报员:587526
2010年1月5日16:00


想要的结果

生活指数预报
1月6日
75%
3级,感觉冷
2级,辐射强度较弱
2级,适宜晨练
4级容易引起森林火灾林区严格控制野外用火!
587526
2010年1月5日16:00


请问正则应该怎么写。
...全文
88 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csz_1987 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyi8808 的回复:]
C# code
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string input = @" 生活指数预报
1月6日
平均相对湿度:75%
人体舒适度等级:3级,感觉冷
……
[/Quote]


也谢谢空军了。两个帖子都帮忙。
十八道胡同 2010-03-25
  • 打赏
  • 举报
回复
可是到了某些文本文件内的内容行数会变化,所以弄的不好操作。
一时半伙学正则又不太现实。所以上来求助。


-------------
有变化就会有固定的地方,找到固定的地方正则就好写了
csz_1987 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lxcnn 的回复:]
哪里固定,哪里变化?

虽然正则可以写出来,但看例子感觉没什必要用正则,直接字符串处理就行了


C# code
Regex reg = new Regex(@"(?m)(?!\s*[\u4e00-\u9fa5]+:|[\s:]).+$");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
……
[/Quote]


太感谢了。这是做文本解析用的。解析的内容很多。但是格式相对固定。
之前我是用 StreamReader.ReadLine()去一行一行的读,然后插入List<string>。
可是到了某些文本文件内的内容行数会变化,所以弄的不好操作。
一时半伙学正则又不太现实。所以上来求助。
wuyi8808 2010-03-25
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string input = @" 生活指数预报
1月6日
平均相对湿度:75%
人体舒适度等级:3级,感觉冷
紫外线等级:2级,辐射强度较弱
晨练指数:2级,适宜晨练
森林火险等级:4级容易引起森林火灾林区严格控制野外用火!

预报员:587526
2010年1月5日16:00";
Regex r = new Regex(@"(?m) +|^[^\d]+:");
Console.WriteLine(r.Replace(input, ""));
}
}
十八道胡同 2010-03-25
  • 打赏
  • 举报
回复
如果字符串固定的话 自己切割好了
波导终结者 2010-03-25
  • 打赏
  • 举报
回复
没有规律,你前面只要冒号后面的数据,最后一行又2010年1月5日16:00包括了冒号
-过客- 2010-03-25
  • 打赏
  • 举报
回复
哪里固定,哪里变化?

虽然正则可以写出来,但看例子感觉没什必要用正则,直接字符串处理就行了

Regex reg = new Regex(@"(?m)(?!\s*[\u4e00-\u9fa5]+:|[\s:]).+$");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
清风六月 2010-03-25
  • 打赏
  • 举报
回复
MS正则式用在匹配方面比较多,你这个格式机会都固定了,我建议直自己切割字符串吧!
healer_kx 2010-03-25
  • 打赏
  • 举报
回复
正则不是无所不能的,而且很多时候能,也未必是最好的。

这个就自己Parse吧。

110,537

社区成员

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

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

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