一个字符串里大致内容如下:!$(P05Y200003630653)Pol_type~LIFE~~Resv_desc~列金额加上因红利分配而产生的相关利益。Resv_desc~上表所列的现金价值不包括因红利分配而产生Resv_desc~如有未列年度及事项,详见合同条款。%%EOJ!$(P05Y200003630653)Pol_type~LIFE~~Resv_deResv_desc~Resv_desc~的相关利益。Resv_desc~如有未列%%EOJ想要计算以上串中,以“!$”开始,以“%%EOJ”结束,的数据对的个数。c#中相应的正则表达式怎么写?自己没想到好的实现方法。!$(中间部分)%%EOJ这中间部分有以下要求:1. 至少包含一个字符,那就涉及到[]+了2. 使用懒惰匹配模式,找最近的%%EOJ配对。或者写一个表达式保证这个串中不包含%%EOJ的字串。正则表达式快来帮忙?
2 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
!\$(.+?)%%EOJ即可,注意要启用正则的单行模式
在C#中统计并返回数据对个数的代码是:
var input = @"!$(P05Y200003630653)
Pol_type~LIFE~~
Resv_desc~列金额加上因红利分配而产生的相关利益。
Resv_desc~上表所列的现金价值不包括因红利分配而产生
Resv_desc~如有未列年度及事项,详见合同条款。
%%EOJ
!$(P05Y200003630653)
Pol_type~LIFE~~
Resv_de
Resv_desc~
Resv_desc~的相关利益。
Resv_desc~如有未列
%%EOJ";
var r = new System.Text.RegularExpressions.Regex(@"!\$(.+?)%%EOJ", System.Text.RegularExpressions.RegexOptions.Singleline);
return r.Matches(input).Count;
- 2 回答
- 0 关注
- 2459 浏览
添加回答
举报
0/150
提交
取消