Есть некоторые текстовые файлы, которые мне нужны, чтобы разбить отдельные слова. Но с очень либеральным определением слова.Regex To Parse Anything Not A b
\b
, кажется, правильно идентифицирует границы, но так как это нулевая ширина^\ b ничего не делает.
Я знаю, что .NET string.parse может быть быстрее, но мне нужна позиция соответствия.
В чем я оказался, показано ниже. Когда с^на ненулевом, что я хотел разрываться. Добавлена дата, адрес электронной почты и URL, которые хотели игнорировать перерывы.
Я знаю, что это решение не очень близко к моей исходной постановке проблемы. Он развился. Спасибо за вашу помощь.
String line;
pattern = @"\[email protected]\w+|[01]?\d\/[0123]?\d\/([12]\d)?\d\d|https?:\/\/(?:\w+\.){1,3}\w+|[^\s\.\\///?!()@,]{2,200}";
while ((line = sr.ReadLine()) != null)
{
Debug.WriteLine(line);
foreach (Match match in Regex.Matches(line, pattern, RegexOptions.IgnoreCase))
{
Debug.WriteLine(match.Index.ToString() + " " + match.Value);
}
break;
}
Пожалуйста, добавьте образец строки и нужные совпадения. –
@ChrisS, который до 75 пустых. Количество символов в строке. pattern = @ "\ b ([^ \\ b] +) \ b"; дал странный анализ 3 слов на границах слов, но некоторые слова включали границы работы. – Paparazzi
Вы, например, говорите, что хотите 'MSCFX package propertiescu3u bin exet [p" R'4 ~ fd' из строки мусора, но разве это не вся целая строка мусора? –