在我的作业中需要一些正则表达式的帮助。我必须在内容分隔符的基础上拆分多行文字
--------原始消息--------
情景是内容分隔符可以包含任意数量的“ - ”字符,后跟任意数量的空格和然后是文本“原始消息”将会再次出现任意数量的“ - ”字符。
任何帮助都将不胜感激。
答案 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在行动中:
答案 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
进行测试来构建自己的模式