c# - 正则表达式新行不起作用

标签 c# regex

我想获取括号之间的文本。例如:


(a) 对于交割时应付给卖方的购买价以外的款项,买方的未经认证的支票金额最多为 $ {未经认证的支票限额} ;和

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

卖方的陈述。


从这段文字中我想得到:

  1. {未经认证的支票限额}

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

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

最佳答案

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

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

MSDN 上 RegexOptions.Singleline :

Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).

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

关于c# - 正则表达式新行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355957/

相关文章:

c# - 在 Windows 窗体中获取多个 UI 线程

c# - SQL DELETE(级联 DELETE 与 TRIGGERS 与 "Manual"-DELETE)

c++ - 使用 <tr1/regex> 中的 regex_replace 函数时出错

python - 尝试查找包含特定子序列的不重叠子字符串

python - 谷歌地图使用 Selenium 的地点ID

c# - .NET更新难度

c# - 匿名 JSON 对象集合的单元测试

c# - 如何处理非 fatal error 情况

匹配字符串的正则表达式,但前提是同一行上的任何地方都不存在另一个字符串

php - MySQL RegEx 搜索每一列