Я пытаюсь совместить текст между двумя разделителями, [% %]
, и я хочу получить все, содержит ли строка новые строки или нет.C# Regex Совпадение между или без новых строк
Код
string strEmailContent = sr.ReadToEnd();
string commentPatt = @"\[%((\r\n?|\n).*(\r\n?|\n))%\]";
Regex commentRgx = new Regex(commentPatt, RegexOptions.Singleline);
Примеры входов
//Successful
[%
New Comment
%] other content from input
//Match: [%\r\nNew Comment\r\n%]
//Fail
[% New Comment %]
//Match: false
//Successfully match single line with
string commentPatt = @"\[%(.*)%\]";
//Match: [% New Comment %]
Я не знаю, как совместить эти две модели, чтобы соответствовать оба случая. Может ли кто-нибудь помочь?
Поскольку '.' соответствует любому символу, кроме' \ n', попробуйте 'строка commentPatt = @ "\ [% (|. \ П) *% \]" ; '. –
Было бы уместно сопоставить любые пробелы вместо символов новой строки? Если это так, вы можете использовать сокращенный класс символов пробелов '\ s +' вместо '\ r \ n' –