.Net正则表达式中的参数异常

时间:2014-07-15 14:30:39

标签: .net regex

我正在尝试将一组破折号中的文本搜索到另一组并包含其间的所有行,但我的正则表达式在visual studio中显示此错误

  

解析“^ [ - ] {10,} \ n(?:。 \ n)+?[ - ] {10,}” - 嵌套量词*。

System.Text.RegularExpressions.Regex dash = new System.Text.RegularExpressions.Regex(@"^[-]{10,}*\n(?:.*\n)+?[-]{10,}");

文字看起来像

------------------------------------------------------------------------------------------------------------------------------------

XXXXXXXXXXXX XXXXXX0 0000000000X00XXXXXXXXXXX00X00XXXX000000000 XXXXX000X0XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXX XXXX000XXXXXXXXXXXXXXXXXXXXXXXX00000XX000X000X0000XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXX
XXXX00X0000XXXXXXXXXXXXXXXXXXX00X00X00X00 00XXXXXXXXXX XXXXXXXXXXXX00000000XXXXXXXXXXXXXX 
XXXXXXXXXXXXXXXXXXXX XXXXXXX0000XXXXXXXXXXXXXXXXX000XXXXXXXXXXXXXXXX00000X0 000XXX000X000X0 000XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX XXXXXXX0X0XXXXXXXXXXX00000X0XX00000XX0 0000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX                                                               
------------------------------------------------------------------------------------------------------------------------------------

编辑:我想我错过了* \ n之前的一段时间 - 这导致了问题

2 个答案:

答案 0 :(得分:1)

您有{10,}*,它们是两个量词:{10,}*并排。这会导致显示错误。

答案 1 :(得分:0)

尝试使用以下正则表达式匹配位于破折号之间的行。

(?<=^[-]{10,}.*?\n)(?:.*\n)+?(?=[-]{10,})