@CommonX

Как корректно воспользоваться регулярным выражением?

В строке нужно значения завернутые в *any* привести к **any**. Пытался что-то накинуть, но работает неккоректно
string data = "some text *text* ok *text* hello **world*";
// Надо, чтобы стало "some text **text** ok **text** hello ***world**"
string pattern = @"(?:[*])([^*].*?)(?:[*])";
MatchCollection matches = new Regex(pattern).Matches(data);
if (matches.Count > 0)
{
    foreach (Match match in matches)
    {
        Console.WriteLine(match);
        data = Regex.Replace(data, pattern, "*" + match + "*");
    }
}
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C#
using System;
using System.Text.RegularExpressions;
					
public class Program
{
	public static void Main()
	{
		string data = "some text *text* ok *text* hello **world*";
		// Надо, чтобы стало "some text **text** ok **text** hello ***world**"
		string pattern = @"(?:[*])([^*].*?)(?:[*])";
		var regex = new Regex(pattern);
		var result = regex.Replace(data, m => $"*{m.Value}*");
		Console.WriteLine(result);
	}
}

А у вас что-то странное в коде делается с поиском совпадений и заменами. Вообще не понял, что вы хотели сделать, это так не работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы