一個字符串里大致內容如下:!$(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 關注
- 2506 瀏覽
添加回答
舉報
0/150
提交
取消