2013-09-21 47 views
-2

需要對正則表達式的東西一定的幫助我assignment.I已拆分內容分隔拆分在C#中使用正則表達式文件

--------原始郵件的基礎上,多行文本--------

方案是內容分頻器可以有任意數量的「 - 」字符後跟任意數量的空間然後文本「原始信息」會其次是任意數量的「 - 」字符

任何幫助將不勝感激。

回答

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

+0

你應該添加錨在你的正則表達式d emo並提到只有在多行標誌處於活動狀態時,正則表達式才能正常工作。 – Jerry

+0

我不認爲你需要逃避'-' –

0

嘗試下面的正則表達式(設置RegexOptions.Multiline

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

爲了解釋,考慮的示例文件包含以下文本,

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

-------------------------- -------原始提示----------------------------
部分其他文字
部分其他文字
部分其他文字
部分其他文字

將會有兩場比賽。

  • 第一場比賽:

------------------------------- - 原始郵件----------------------------
一些文本
一些文本
一些文本
某些文本

  • 第二場比賽:

---------------------------------原始郵件----------------------------
其它文本
其它文本
其它文本
其它文本

正則表達式的行爲here

樣品here

希望它有幫助。

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

你可以在http://www.freeformatter.com/regex-tester.html
驗證此正則表達式的正則表達式以上的有效期爲:
------------匹配---------- -
- 原始的MESSAGE-
------------原始MESSAGE-
-----原始MESSAGE-

如果你想消息後和之前的任何空間「 - 」,那麼:

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

如果原始和消息之間的空間是可選的,則:

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

如果原始和消息之間的空間是可選的或者僅一個空間alowed然後:

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

可以幀你自己的模式通過修改這個正則表達式和測試在http://www.freeformatter.com/regex-tester.html