Шаблон Regex.Split: Как разбить строку на повторяющиеся блоки шаблона? - PullRequest
2 голосов
/ 05 апреля 2011

Допустим, у нас есть строка:

"somethinghere% C3somethinghere% 83% C3% A8% C3% AF% C3% AD% C3% AEsomethinghere% C3% A7somethinghere"

Каким будет шаблон Regex.Split для получения следующего списка значений:

  1. % C3
  2. % 83% C3% A8% C3% AF% C3% AD% C3% AE
  3. % C3% А7

ПРИМЕЧАНИЕ: что-то здесь - может быть любой текст, который не имеет значения и не содержит символа '%';

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Похоже, вам нужно Regex.Matches вместо Regex.Split. Если вы хотите, чтобы результатом был список строк, вы можете использовать linq:

List<string> result = Regex.Matches(source, "(%[A-Fa-f0-9]{2})+").OfType<Match>().Select(s => s.Value).ToList();
1 голос
/ 05 апреля 2011

Возможно, вы захотите:

/(%[A-F0-9]{2})+/g

Предполагая синтаксис регулярного выражения в стиле JavaScript.

Редактировать:

Если вы хотите оставить символ % внематч:

/(?:%([A-F0-9]{2}))+/g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...