C#正则求值?

忆水思寒 2019-05-24 09:02:34
目标字符串:【11122】:abc【11122】:abc2【11122】:abc3【11122】:abc5
想要结果中的Groups是 【11122】:abc 这样的 四个groups
自己写的下面一个,组分不开,请大家指点下

string str = "【11122】:abc【11122】:abc2【11122】:abc3【11122】:abc5";
string resStr;
Regex regex = new Regex(@"(【\S+】):[^【](\S+))";
MatchCollection matchs;
matchs = regex.Matches(newFirstTr);
foreach (Match match in matchs)
{
resStr= match.Groups[0].ToString();
}


...全文
57 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
忆水思寒 2019-05-24
  • 打赏
  • 举报
回复
看了下,很不错,谢了
  • 打赏
  • 举报
回复
你搜正则表达式30分钟入门那篇文章,我当初也是对着那个学的
忆水思寒 2019-05-24
  • 打赏
  • 举报
回复
仔细看了版主的代码,发现自己问题所有了,自己在写正则时,只用变量替换的思想来的,这样只能取一次大的分组(没有结束条件),版主写的是找到匹配目标的开始和结束位置,然后再截取,这样会得到多个目标块,这就是我想要的结果 这个表达式中的" |$ " 也是要学习的地方,不然最后那个组是找不到值的 感谢博主,学到很多
忆水思寒 2019-05-24
  • 打赏
  • 举报
回复
引用 1 楼 娃都会打酱油了 的回复:
【[\s\S]*?(?=【|$)
求指点
忆水思寒 2019-05-24
  • 打赏
  • 举报
回复
谢版主,你怎么写正则那么容易,我看了一些相关的写法,但写着还是费劲,能指点下吗
  • 打赏
  • 举报
回复
【[\s\S]*?(?=【|$)
本书为英文版。 Jeffrey E. F. Friedl 著 本书讲解则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MySQL、VB.NET和C#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。 《精通则表达式(第3版)》包含了对PHP及其则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java 1.4.2和Java 1.5/1.6之间的众多差异。 本书的内容: ● 各种语言和工具的功能比较 ● 则引擎的工作原理 ● 优化(能节省大量的时间) ● 准确匹配期望的文本 ● 针对具体语言的章节 《精通则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 “如果你的工作需要用到则表达式(即便你已经有本很不错的关于开发语言的书),我还是要向你强烈推荐本书。” ——Dr.Chris Brown, Linux Format “毫不夸张地说,《精通则表达式(第3版)》是学习该工具的不二选择,也是每个程序员必备的杰作。” ——Jason Menard, Java Ranch “所有关于则表达式的书中,找不到比这更好的了。” ——Zak Greant, Planet PHP

110,552

社区成员

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

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

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