Regex Получить строку между двумя символами с проверкой - PullRequest
0 голосов
/ 22 апреля 2020

Пример:

! Это # строка #test, которую я публикую и! #yes # это! пример.!

Теперь есть много! и # но мне нужно только # получить! в последовательности, поэтому мне нужно извлечь эти полужирные тексты:

! это # ​​строка # test # , которую я публикую и ! # да # это ! пример.!

Я хочу получить массив, который содержит: string[] st = {"string which I'm posting and","this is an"};

Надеюсь, вы понимаете, заранее спасибо

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Вы можете использовать положительный взгляд и взгляд назад :

string pattern = @"(?<=#)([^#!]+)(?=!)";
Regex rg = new Regex(pattern);
var input = "!this#is a #test #string which I'm posting and! #yes #this is an! example.!";
MatchCollection matches = rg.Matches(input);

Затем вы можете выполнить итерацию по matches, чтобы получить свои результаты:

for (int i = 0; i < matches.Count; i++)
{
    Console.WriteLine(matches[i].Value);
}
0 голосов
/ 22 апреля 2020

Используйте следующее регулярное выражение:

#([^#!]+)!

Строка, которую вы ищете, находится в группе 1

Объяснение:

#           # literally
([^#!]+)    # group 1, 1 or more ay character that is not # or !
!           # literally
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...