正则表达式提取全在一起了,怎么分开

xloveme 2014-01-08 04:26:18
比如有文本:

asdgasgd
HH<这里可以插入任意字符串 1》HH
89066asgiohiuh98y23476
HH<这里可以插入任意字符串 2》HH
uh89yg987t7



定义正则表达式: HH[\d\D]*HH,预期想要得到的结果是(包含两个结果):
HH<这里可以插入任意字符串 1》HH
HH<这里可以插入任意字符串 2》HH

但是,事与愿违,得到的结果是(只包含一个结果):
HH<这里可以插入任意字符串 1》HH
89066asgiohiuh98y23476
HH<这里可以插入任意字符串 2》HH


请问,该怎么处理才能得到预期效果呢? 谢谢!!!
...全文
72 点赞 收藏 9
写回复
9 条回复
熊熊大叔 2014年01月08日
HH(.)*HH
回复 点赞
xloveme 2014年01月08日
Return_false 果然是喜欢正则的不一样啊,搞定了 谢谢!!!!!!!!
回复 点赞
人生难得一只鸡 2014年01月08日
正则 修改为 HH[\d\D]*?HH
回复 点赞
wayu002 2014年01月08日
(?<=HH).*(?=HH)
回复 点赞
xloveme 2014年01月08日
哎呦,楼上的大哥啊。 HH。。。HH 这中间全部是“任意字符”,每一组都有可能不同的,是不可预知的,没有那个“《》”的。 我只是为了“注释说明”加了“《》”。 真有这东西,那还好办了
回复 点赞
jiaoshiyao 2014年01月08日
<.+》 这样貌似就可以实现了
回复 点赞
jiaoshiyao 2014年01月08日
引用 2 楼 xloveme 的回复:
感谢楼上漂亮姐姐的回复,不过妳似乎误会我的意思了。 <这里可以插入任意字符串 1》 的意思是,这里就是随便的任意字体,包括任意文字,任意行,任意数量。 并不局限于 “<。。。。》”这样的格式,而是这个整体“不可预知的任意字符串”。
他九成是个老爷们
回复 点赞
xloveme 2014年01月08日
感谢楼上漂亮姐姐的回复,不过妳似乎误会我的意思了。 <这里可以插入任意字符串 1》 的意思是,这里就是随便的任意字体,包括任意文字,任意行,任意数量。 并不局限于 “<。。。。》”这样的格式,而是这个整体“不可预知的任意字符串”。
回复 点赞
欢乐的小猪 2014年01月08日
string patern = @"HH<[\D]* \d+》HH";
            Regex regex = new Regex(patern);
            foreach (Match match in regex.Matches(@"asdgasgd
 HH<这里可以插入任意字符串 1》HH
 89066asgiohiuh98y23476
 HH<这里可以插入任意字符串 2》HH
 uh89yg987t7
"))
            {
                int i;
            }
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告