En el día a día del programador, suelen surgir multitud de dudas, que aunque parecen más que obvias, siempre te hacen acudir a internet a buscar la mejor solución.
Hace un par de días, me encontré ante la necesidad de algo tan sumamente sencillo como reemplazar un texto por otro en una cadena, pero ignorando mayúsculas y minúsculas, trabajando en C# .NET.
Lo primero en lo que pensé es que el método String.Replace de .NET permitiría añadir un parámetro opcional para indicar este modificador, pero no es así, por lo que tenemos que buscarnos las habichuelas por otra parte.
Cierto es que tampoco nos tenemos que ir muy lejos, y es nuevamente el poder de las expresiones regulares el que nos permite construir nuestro propio String Replace siendo insensible a mayúsculas y minúsculas.
Ejemplo de Replace Ignore Case en C#
public string ReplaceIgnoreCase(string original, string search, string replace) { // Reemplazo habitual string value = original.Replace(search, replace); // Reemplazo utilizando expresiones regules ignorando mayúsculas y minúsculas string value2 = System.Text.RegularExpressions.Regex.Replace(original, search, replace, System.Text.RegularExpressions.RegexOptions.IgnoreCase); return value2; } ... string original = "La parte contratante de la primera parte"; string search = "PaRtE"; string replace = "cosa"; string replaced = ReplaceIgnoreCase(original, search, replace); ...
Ejemplo de Replace Ignore Case en VB.NET
Public Function ReplaceIgnoreCase(original As String, search As String, replace As String) As String ' Reemplazo habitual Dim value As String = original.Replace(search, replace) ' Reemplazo utilizando expresiones regules ignorando mayúsculas y minúsculas Dim value2 As String = System.Text.RegularExpressions.Regex.Replace(original, search, replace, System.Text.RegularExpressions.RegexOptions.IgnoreCase) Return value2 End Function
¡Te lo agradecemos!