在C#中使用正则表达式拆分文件

时间:2013-09-21 05:28:28

标签: c# regex

在我的作业中需要一些正则表达式的帮助。我必须在内容分隔符的基础上拆分多行文字

  

--------原始消息--------

情景是内容分隔符可以包含任意数量的“ - ”字符,后跟任意数量的空格然后是文本“原始消息”将会再次出现任意数量的“ - ”字符

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

试试这个:

^\-+\s*Original Message\s*\-+$

这意味着:

^                    Start of the string
\-+                  One or more dashes
\s*                  Zero or more whitespace characters
Original Message     
\s*                  Zero or more whitespace characters
\-+                  One or more dashes
$                    End of the string

这与您提出的请求略有不同,但我认为这是您正在寻找的内容(具体而言,您没有提及&#34之间的空格字符;消息"和第二组破折号。

这个RegEx在行动中:

http://regexr.com?36e1k

答案 1 :(得分:0)

试试下面的正则表达式(设置 RegexOptions.Multiline

^[-]*[ ]*Original[ ]{1}Message[ ]*[-]*[\r\n]*[a-zA-Z\r\n ]*

要解释,请考虑样本文件是否包含以下文本

  

--------------------------------- Original Message ------------ ----------------
  一些文字
  一些文字
  一些文字
  一些文字

     

--------------------------------- Original Message ------------ ----------------
  其他一些文字
  其他一些文字
  其他一些文字
  一些其他文字

将有两场比赛。

  • 第一场比赛:
  

--------------------------------- Original Message ------------ ----------------
  一些文字
  一些文字
  一些文字
  一些文字

  • 第二场比赛:
  

--------------------------------- Original Message ------------ ----------------
  其他一些文字
  其他一些文字
  其他一些文字
  一些其他文字

正则表达式here

示例here

希望它有所帮助。

答案 2 :(得分:0)

^[-]+[' ']*Original[' ']Message[-]+$

您可以在http://www.freeformatter.com/regex-tester.html验证此正则表达式模式
以上正则表达式适用于:
------------ -----------匹配
- 原始信息 -
------------原始信息 -
-----原始信息 -

如果你想在消息之后和' - '之前留下任何空格,那么:

^[-]+[' ']*Original[' ']Message[' ']*[-]+$

如果Original和Message之间的空格是可选的,则:

^[-]+[' ']*Original[' ']*Message[' ']*[-]+$

如果Original和Message之间的空格是可选的,或者只有一个空格,则:

^[-]+[' ']*Original[' ']{0,1}Message[' ']*[-]+$

您可以通过修改此正则表达式并在http://www.freeformatter.com/regex-tester.html

进行测试来构建自己的模式