正则表达式新行不起作用

时间:2018-01-20 12:08:23

标签: c# regex

我希望在括号之间获取文字。例如:

(a)关于在交割时应向卖方支付的购买价格以外的货币,未经认证的买方支票,最高金额为 $ {未经认证的支票限额};和

(b){根据纽约市行政法规影响房产的所有义务 在交割前支付并以金钱支付,应在交割时或之前由卖方解除。}

卖方的陈述。

从这篇文章中我想得到:

  1. {未经证明的检查限制}

  2. {根据纽约市行政法规影响房产的所有义务在交割前发生并以货币支付,应由卖方在交割时或之前解除。}

  3. 我当前的正则表达式 {(.*?)} 不适用于新行 我应该如何修改它?

2 个答案:

答案 0 :(得分:1)

点明确匹配除换行符之外的任何字符。使用RegexOptions.Singleline更改此行为并使点匹配任何字符。

var regex = new Regex("{(.*?)}", RegexOptions.Singleline);

RegexOptions.Singleline上的MSDN:

  

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

你的例子中的换行符在html中消失了,因此产生了误解。

答案 1 :(得分:1)

我可以建议您使用docker build -t org/foo:34f8a342 -t org/foo:latest . 这样的正则表达式,而{[^}]+}可以正常使用新行!

Regex

[ C# Fiddle Demo ]