求正则表达式提取有规律字符串

拿铁加不加糖 2012-07-21 12:24:03
正则识别出如下的规律序列:
1.aaa
2.bbb
3.ccc
要求是提取出这个aaabbbccc

部分代码已经写好
foreach (string str in Regex.Split(textBox1.Text, @"^\d\.$", RegexOptions.Multiline | RegexOptions.IgnoreCase))
{
Console.WriteLine("@" + str);
}

不过貌似我写的有问题。没法提取单条,求大神相助^_^
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2012-07-21
  • 打赏
  • 举报
回复
在楼主代码的基础上修改就把正则中的 $ 去掉,不过用Split方法会多出一个空项来,结果是
@@aaa
@bbb
@ccc

可以用Matches来提取

foreach (Match m in Regex.Matches(yourStr, @"(?m)(?<=^\d\.).+"))
{
richTextBox2.Text += "@" + m.Value + "\n";
}
/*-----输出-----
@aaa
@bbb
@ccc
*/
bdmh 2012-07-21
  • 打赏
  • 举报
回复

StreamReader reader = new StreamReader("e:\\1.txt",Encoding.ASCII);
string content = reader.ReadToEnd();
Regex reg = new Regex(@"(?is)(?<=\d+.)[a-z]+");
MatchCollection ms = reg.Matches(content);
foreach (Match m in ms)
{
MessageBox.Show(m.Value);//这里得到每个单项,自己组合
}
幽狼 2012-07-21
  • 打赏
  • 举报
回复
const string pattern = @"(?:\s*\d+\.[a-z]+\s*)+";
const string source = @"1.aaa
2.bbb
3.ccc ";
var mc = Regex.Match(source, pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);
var result = string.Empty;
if(mc.Success)
{
var temp = mc.Groups[0].Value;
result =Regex.Replace( Regex.Replace(temp, @"\s+", ""),@"\d\.","@");
}
Console.WriteLine(result);
拿铁加不加糖 2012-07-21
  • 打赏
  • 举报
回复
不知道为啥,你的代码还是有点问题,总会多出来一个换行,不过如你所说,把结尾的$去掉就差不多了。
谢谢你噢^_^
[Quote=引用 2 楼 的回复:]
在楼主代码的基础上修改就把正则中的 $ 去掉,不过用Split方法会多出一个空项来,结果是
@@aaa
@bbb
@ccc

可以用Matches来提取
C# code

foreach (Match m in Regex.Matches(yourStr, @"(?m)(?<=^\d\.).+"))
{
richTextBox2.Text += "@" + m.Value +……
[/Quote]
  • 打赏
  • 举报
回复
string str = @"1.aaa
2.bbb
3.ccc
";
str = string.Join("", System.Text.RegularExpressions.Regex.Split(str, @"(?i)[^a-z]").Where(t => t.Trim() != "").ToArray());
正则表达式自动生成器是一个智能、易用的正则表达式生成、测试以及字符串提取工具。正则表达式库让你可以直接借用正则表达式,而无需自己费脑筋。“正则表达式自动生成器”可以自动生成正则表达式,测试正则表达式,可视化显示结果,导出提取字符串,你所要做的,仅仅是几下鼠标点击! 正则表达式自动生成器主要功能: 自动生成正则表达式 编辑并测试正则表达式 多向导页,可在多个源文本上测试同一个正则表达式(标准版无此功能) 多页参考生成正则表达式(标准版无此功能) 自动检查和修改生成的正则表达式的正确性 以可视方式呈现测试结果 从文本文件中获取源文本 从HTML页面中获取源代码 一键导出匹配文本 一键导出提取字符组,并按自定义的分隔符进行分隔 保存项目以便重复测试和修改 在“设计元素”中学习并创建正则表达式 直接从正则表达式库中选择利用正则表达式 多语种 100%-200%大字体下完美显示 你可以从任何纯文本中提取规律的文字,比如txt文件,XML文件,csv文件,HTML文件等,然后导出到剪贴板或文本文件中,你可以很方便地把它们导入到程序,数据库,excel文件等。 正则表达式自动生成器现在有三个语言版本: 英语,简体中文,繁体中文,我们会在以后加入其他语言,比如日语,德语和法语等。 正则表达式自动生成器更新内容: 1、修复一些小bug。 2、增加自定义组和限定词的正则表达式 3、增加自定义窗口背景 4、增加自定义按钮背景 5、修改软件时间为UTC时间(日志除外) 6、修改更新模块 正则表达式自动生成器截图:

110,533

社区成员

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

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

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