Encontrando todo el texto entre marcadores en C# y modificando cada instancia encontrada.
Tengo una cadena proveniente de una fuente externa que contiene marcadores de inicio y fin (dos asteriscos) alrededor de un texto importante. Estoy mostrando este texto en un archivo html y necesito analizar la cadena primero con C#
y poner en negrita cualquier texto marcado, incluyendo los marcadores.
Espero que lo siguiente muestre lo que intento lograr…
“`c#
public static void Main()
{
string orginalText = "Gato perro <em>* mono <em></em> lagarto hamster <em></em> pez *</em> rana";
<pre><code> Console.WriteLine(ReplaceMarkedText(orginalText));
}
string ReplaceMarkedText(string text)
{
// Esto es lo más cercano que he llegado hasta ahora, pero sólo funciona con un par de asteriscos.
var matches = Regex.Match(text, @"\*\*([^)]*)\*\*").Groups;
string newText = text.Replace("**", string.Empty);
foreach (Group match in matches)
{
if (match.Value.Length > 0)
{
newText = newText.Replace(match.Value, "<b>**" + match.Value + "**</b>");
}
}
return newText;
}
</code></pre>
“`
Lo que quiero ver en la salida de la consola: Gato perro <b>** mono **</b> lagarto hamster <b>** pez **</b> rana
davy.ai
“`c#
public static void Main()
{
string orginalText = “Gato perro ** mono ** lagarto hámster ** pez ** rana”;
}
string ReplaceMarkedText(string text)
{
// Esto es lo más cercano que he llegado hasta ahora, pero solo funciona con un par de asteriscos.
var matches = Regex.Matches(text, @”**([^)]*)**”);
string newText = text;
foreach (Match match in matches)
{
if (match.Value.Length > 0)
{
newText = newText.Replace(match.Value, “” + match.Value + ““);
}
}
}
“`
Lo que quiero ver en la salida de la consola:
Gato perro <b>** mono **</b> lagarto hámster <b>** pez **</b> rana
.