C# 使用正则表达式过滤多行双引号字符串
Posted
技术标签:
【中文标题】C# 使用正则表达式过滤多行双引号字符串【英文标题】:C# filter multiline double quoted string with Regular expression 【发布时间】:2013-12-02 22:07:56 【问题描述】:我想在 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);
这过滤第一个字符串,但不过滤另一个。
这两个字符串的通用过滤器是什么?
【问题讨论】:
【参考方案1】:请改用RegexOptions.SingleLine
。
来自docs:
单行 指定单行模式。更改点的含义 (.) 所以它匹配每个字符(而不是每个字符,除了 \n)。
【讨论】:
【参考方案2】:考虑以下正则表达式...
\+CUSD: (\d+),\"[\s\S]*?\", (\d+)
祝你好运!
【讨论】:
以上是关于C# 使用正则表达式过滤多行双引号字符串的主要内容,如果未能解决你的问题,请参考以下文章