我的作业需要一些关于正则表达式的帮助。我必须根据内容分隔符拆分多行文本
- - - - 原始信息 - - - -
场景是内容分隔符可以有任意数量的“-”字符后跟任意数量的空格,然后文本“Original Message”将再次出现在任意数量的“-”字符之后。
任何帮助将不胜感激。
^[-]+[' ']*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进行测试
试试下面的正则表达式(设置RegexOptions.Multiline)
^[-]*[ ]*Original[ ]{1}Message[ ]*[-]*[\r\n]*[a-zA-Z\r\n ]*
为了解释,请考虑示例文件是否包含以下文本,
- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些文字
一些文字
一些文字
一些文字- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些其他文本
一些其他文本
一些其他文本
一些其他文本
将有两场比赛。
- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些文字
一些文字
一些文字
一些文字
- - - - - - - - - - - - - - - - - 原始信息 - - - - - - - - -------------
一些其他文本
一些其他文本
一些其他文本
一些其他文本
正则表达式在这里起作用。
样品在这里。
希望能帮助到你。
尝试这个:
^\-+\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
这与您所说的请求略有不同,但我认为这就是您要查找的内容(具体来说,您没有提到“消息”和第二组破折号之间的空白字符)。
这是这个正则表达式的实际应用: