EDIT: (получил * назад фиксируя его?..)
(?<[email protected]).*?([email protected])
EDIT: Упс, сделать что SingleLine
"" по умолчанию не будут соответствовать новостям, но вы можете включить это. Как это сделать, зависит от того, какой механизм регулярных выражений вы используете, но обычно он называется «singleline»
EDIT: пила, что вы используете .NET. Попробуйте это:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace RegexSandboxCSharp {
class Program {
static void Main(string[] args) {
string l_input = @"Hello World
@start some text @end
@start more text @end";
// This is the relevant piece of code:
MatchCollection l_matches = Regex.Matches(l_input, "(?<[email protected]).*?([email protected])", RegexOptions.Singleline);
foreach (Match l_match in l_matches) {
Console.WriteLine(l_match.Value);
}
Console.ReadKey(true);
}
}
}
@start {1} (. * \ N) + @ end {1}. Проблема заключается в части (. * \ N) +, поскольку она соответствует концу. Этот шаблон возвращает одно совпадение (начало некоторого конца текста начало большего текста) – mtm927
Попробуйте нежелательную версию с '. *?' Вместо '. *'. Кстати, зачем вам '{1}' s? – Vlad
Не имеет значения :( – mtm927