2013-03-31 3 views
0

Хотите соответствовать тому, что после «субъект» или «Subject:», но только на этой линии
Я хочу найти все строки для объекта или предмета:
Но если остальная часть линии является пустым не соответствуетRegex не матч на следующую строку

(?i)(?<=\bSubject:?\s+).+$ 

образец текста

 
Subject: 
Pat Sanders 

(разрыв строки между Subject: и Pat)

Это регулярное выражение соответствует Пэт Сандерс.
Поскольку он находится на следующей строке, я НЕ хочу, чтобы он соответствовал.

Регулярное выражение компилируется с RegexOptions.Multiline

Я думаю, что .+ жаден и потребляя разрыв строки.

Это работает в том, что он соответствует только на текущей строке:

(?i)(?<=\bsubject:).+?$ 

Но это не работает:

(?i)(?<=\bsubject:?).+?$ 

ретроспективный обзор не потребляет:
В: включено в матч

ответ

0

попробовать это может работать

(\b(subject)\b).+(?=\s+\r?$) 
+0

я уже связал это. Это приводит к тому, что разрыв линии не является частью матча, но он по-прежнему соответствует Пэт Сандерс. У Пит Сандерса нет разрыва линии. – Paparazzi

0

Вы попробовали это?

Subject:[\w ]+$ 

Посмотрите здесь: http://rubular.com/r/k8SyIO6c2R

+0

Это будет соответствовать теме "subject:", и я не хочу этого. Тема - это внешний вид. – Paparazzi

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