C#使用正则表达式过滤多行双引号字符串

时间:2013-11-19 11:20:42

标签: c# regex string quotes multiline

我想在C#中使用正则表达式过滤以下字符串。

+CUSD: 2,"Your account balance is BDT 00.00 valid till 02/05/14. Dial *789*1*1# to get daily General Health Tips,Charge Tk 1.73/SMS", 15

+CUSD: 1,"1 Call Block
2 Mobile Service
3 Infotainment
4 Recharge
5 Roaming
6 Internet
7 Product & Promotion
8 Account Info
9 GP STAR", 15

第一个是单行。第二个是多线。

Regex regex1 = new Regex("\\+CUSD: (\\d+),\"(.*?)\", (\\d+)\\r\\n", RegexOptions.Multiline);

这会过滤第一个字符串而不是另一个字符串。

这两个字符串的常用过滤器是什么?

2 个答案:

答案 0 :(得分:1)

改为使用RegexOptions.SingleLine

来自docs

  

单线指定单线模式。改变点的含义   (。)所以它匹配每个字符(而不是每个字符除外)   \ n)的

答案 1 :(得分:0)

考虑以下Regex ......

\+CUSD: (\d+),\"[\s\S]*?\", (\d+)

祝你好运!