2013-09-21 2 views
-2

Нужна помощь на регулярных выражений вещи для моих assignment.I должны разделить мульти текст линию на основе содержимого делителяРасщепление файл, используя регулярные выражения в C#

-------- Оригинал сообщения --------

Сценарий делитель содержание может иметь любое количество «-» характер следуют любое количество пространства и затем текст «Original Message» придет за которым снова следует любое число символов «-».

Любая помощь будет оценена.

ответ

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 

Это немного отличается от вашего запроса, как вы заявили, но я думаю, что это то, что вы ищете (в частности, вы не указали пробельные символы между «сообщением» и вторым набором тире).

Вот это RegEx в действии:

http://regexr.com?36e1k

+0

Вы должны добавить якоря в regexr d emo и упомянуть, что регулярное выражение будет работать правильно только в многострочном флаге. – Jerry

+0

Я не думаю, что вам нужно сбежать '-' –

0

Попробуйте регулярное выражение ниже (набор RegexOptions.Multiline)

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

Чтобы объяснить, рассмотрим, если файл образца содержит следующий текст ,

--------- ------------------------ Исходное сообщение------------------------ ----
Некоторые Текст
Некоторые Текст
Некоторые Текст
Некоторые Текст

-------------------------- ------- Оригинальное сообщение ----------------------------
Некоторые другие тексты
Некоторые другие тексты
Некоторые Прочие тексты
Некоторые другие тексты

Будет два матча.

  • Первый матч:

------------------------------- - Исходное сообщение ----------------------------
Some Text
Some Text
Some Text
Some Text

  • Второй матч:

--------------------------------- Исходное сообщение ----------------------------
Some Other Текст
Некоторые Другое Текст
Некоторые Другое Текст
другой текст

Regex in action here.

Образец here.

Надеюсь, это поможет.

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

вы можете проверить это регулярное выражение в http://www.freeformatter.com/regex-tester.html
выше регулярное выражение справедливо для:
------------ Матчи ---------- -
ПЕРВОНАЧАЛЬНО Сообщение-
------------ Оригинал Сообщение-
----- Оригинал Сообщение-

Если вы хотите любой пробел после сообщения и до «-», то :

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

Если пространство между оригиналом и сообщение не является обязательным, то:

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

Если пространство между оригиналом и сообщение не является обязательным или только один пробел допускаемые затем:

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

Вы можете кадр ваш собственный шаблон путем изменения этого регулярного выражения и теста на http://www.freeformatter.com/regex-tester.html

Смежные вопросы