正则表达式命名捕获组时出错

时间:2016-04-05 09:18:08

标签: c# regex visual-studio-2010 visual-studio-2013 .net-4.0

对于我的一个应用程序,我正在尝试从<textarea>标签读取测试。在Visual Studio 2010中,下面提到的模式工作得很好。但是在Visual Studio 2013中它返回错误“指定的参数超出了有效值的范围。 参数名称:i“

我的正则表达式string exp = @"<textarea[^>]*id=['""]objCodePress_QB_Query['""].*?>(?<xtract>(.*?))</textarea>";

和我正在寻找的字符串示例是

<textarea id="objCodePress_QB_Query" name="objCodePress_QB_Query" style="width:100%;" rows=20 class="codepress sql">Hello this is a test</textarea>

新版本的regex是否有任何更新或我如何修复此问题?

1 个答案:

答案 0 :(得分:0)

很明显,您遇到的问题与空白有关。

声明Regex对象时,请使用RegexOptions.Singleline强制.匹配任何字符,包括换行符。

另一种解决方案是在模式的开头添加(?s)