-2

我的作业需要一些关于正则表达式的帮助。我必须根据内容分隔符拆分多行文本

- - - - 原始信息 - - - -

场景是内容分隔符可以有任意数量的“-”字符后跟任意数量的空格然后文本“Original Message”将再次出现在任意数量的“-”字符之后。

任何帮助将不胜感激。

4

3 回答 3

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

您可以在http://www.freeformatter.com/regex-tester.html 验证此正则表达式模式
上述正则表达式适用于:
------------Matches-------- ---
-Original Message-
------------Original Message-
----- Original Message-

如果您想在 Message 之后和“-”之前有任何空格,那么:

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

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

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

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

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

您可以通过修改此正则表达式来构建自己的模式并在http://www.freeformatter.com/regex-tester.html进行测试

于 2013-09-21T11:55:33.113 回答
0

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

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

为了解释,请考虑示例文件是否包含以下文本,

- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些文字
一些文字
一些文字
一些文字

- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些其他文本
一些其他文本
一些其他文本
一些其他文本

将有两场比赛。

  • 第一场比赛:

- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些文字
一些文字
一些文字
一些文字

  • 第二场比赛:

- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些其他文本
一些其他文本
一些其他文本
一些其他文本

正则表达式在这里起作用。

样品在这里

希望能帮助到你。

于 2013-09-21T10:57:40.390 回答
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

这与您所说的请求略有不同,但我认为这就是您要查找的内容(具体来说,您没有提到“消息”和第二组破折号之间的空白字符)。

这是这个正则表达式的实际应用:

http://regexr.com?36e1k

于 2013-09-21T05:34:34.270 回答