关于Regex.Matches匹配问题

zhangteng9 2014-04-22 12:26:08
string juduan = @"abcd[\s\S]*abcd";
MatchCollection m = Regex.Matches("abcd1abcd2abcd3abcdfff",juduan);
如上边的方法 我使用Matches为什么不能得到abcd1abcd ,abcd3abcd 这样分开的两个匹配只能得到abcd1abcd2abcd3abcd这一个比较长的匹配?怎么设置才能匹配?我需要得到所有匹配项和所在位置!实际情况和这个差不多 但是可能更长
...全文
196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-04-22
  • 打赏
  • 举报
回复
把*换成?就行了.
zhangteng9 2014-04-22
  • 打赏
  • 举报
回复
这问题我自己找相关资料解决了!谢谢各位!
zhangteng9 2014-04-22
  • 打赏
  • 举报
回复
可以这样理解吧 abcd其实是一个标签 例如<a>123</a><a>12345</a>我写匹配的时候需要分别得到<a>123</a>和<a>12345</a>而不是<a>123</a><a>12345</a>
zhangteng9 2014-04-22
  • 打赏
  • 举报
回复
上边我只是举个例子 这句可能是MatchCollection m = Regex.Matches("abcd1234abcd3456abcd8889abcdfff",juduan); 中间的其他字符的长度是不固定的 ,我就不是不清楚 这个匹配怎么不匹配他的子串 而是如果字符串本身就满足正则的条件 就只返回了字符串本身。
qqqq5201314 2014-04-22
  • 打赏
  • 举报
回复
abcd[\s\S]*?abcd *?重复任意次,但尽可能少重复 不知道是不是楼主你要的。。

111,125

社区成员

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

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

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