Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.111.9] |
|
Сообщ.
#1
,
|
|
|
Здрасте всем!
Кто в регулярных выражениях здорово разбирается, подскажите пожалуйста: на входе имеется набор строк (на самом деле внутри одной строки, .т.е. просто присутствуют '\n') вида CollapsedWrap disabledLine numbers off <br>1. some text some text some text some text<br>some text some text some text some text<br><br>2. some text some text some text some text<br>some text some text<br><br>и.т.д..................<br> Надо получить коллекцию строк, где каждый элемент соответствует тексту одного абзаца (начинающегося с "number. "). Какое должно быть выражение? "(^[0-9]+\.?\x20+.+)" выбирает весь текст с первого пункта до конца. Как ограничить его началом следующего пункта? Спасибо. |
Сообщ.
#3
,
|
|
|
Хм, тишина. Может нужно так сделать:
Up. Актуально. |
Сообщ.
#4
,
|
|
|
попробуйте
Цитата \x20\d(.*?) Добавлено using System; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string pattern = @"\x20\d(.*?)"; string text = "\n1. some text some text some text some text\nsome text some text some text some text\n2. some text some text some text some text\nsome text some text\n"; MatchCollection matches; Regex defaultRegex = new Regex(pattern); // Get matches of pattern in text matches = defaultRegex.Matches(text); Console.WriteLine("Parsing '{0}'", text); // Iterate matches for (int ctr = 0; ctr < matches.Count; ctr++) Console.WriteLine("{0}. {1}", ctr, matches[ctr].Value); Console.ReadKey(); } } } |
Сообщ.
#5
,
|
|
|
Цитата sad but true @ <br>1. some text some text some text some text<br>some text some text some text some text<br><br>2. some text some text some text some text<br>some text some text<br><br>и.т.д..................<br> Цитата sad but true @ просто присутствуют '\n' <br> вижу, а \n никак не вижу. Если просто разделить на куски начинающиеся с цифры, то можно так: \d\D*[^\d] Как Беша уже делал: string pattern = @"\d\D*[^\d]";//"\x20\d(.*?)"; string text = "<br><br>1. some text some text some text some text\nsome text some text some text some text<br><br>2. some text some text some text some text"; MatchCollection matches; Regex defaultRegex = new Regex(pattern); // Get matches of pattern in text matches = defaultRegex.Matches(text); Console.WriteLine("Parsing '{0}'", text); // Iterate matches for (int ctr = 0; ctr < matches.Count; ctr++) Console.WriteLine("{0}. {1}", ctr, matches[ctr].Value); Console.ReadKey(); |
Сообщ.
#6
,
|
|
|
Прикреплённый файлRegExp.rar (4,11 Кбайт, скачиваний: 306)
|