Ahora que hemos visto la sintaxis básica (que más o menos) es una sintaxis común que podemos aplicar en distintos lenguajes de programación y herramientas.
Sin embargo, aunque la sintaxis básica de las expresiones regulares suele ser similar, cada lenguaje puede tener variaciones en su implementación y en las funciones disponibles.
Así que vamos a dedicar un artículo a ver cómo se podrían ejecutar algunas regular expression en Python, JavaScript y C#.
Expresiones regulares en Python
Python ofrece el módulo re
, que proporciona una amplia gama de funcionalidades para trabajar con expresiones regulares. A continuación, se presentan algunos ejemplos prácticos.
Coincidencias básicas
import re
text = "El gato está en el tejado."
pattern = r'gato'
# Buscar coincidencias
matches = re.findall(pattern, text)
print(matches) # ['gato']
Sustitución
text = "El cielo es azul."
pattern = r'azul'
replacement = 'rojo'
# Sustituir coincidencias
new_text = re.sub(pattern, replacement, text)
print(new_text) # 'El cielo es rojo.'
Uso de banderas
text = "Hola, Hola, hOLA"
pattern = r'hola'
# Buscar sin importar mayúsculas
matches = re.findall(pattern, text, re.IGNORECASE)
print(matches) # ['Hola', 'Hola', 'hOLA']
Expresiones regulares en JavaScript
JavaScript tiene soporte nativo para expresiones regulares a través de la clase RegExp
. A continuación, se muestran ejemplos de su uso.
Coincidencias básicas
let text = "El gato está en el tejado.";
let pattern = /gato/;
let matches = text.match(pattern);
console.log(matches); // ['gato']
Sustitución
let text = "El cielo es azul.";
let pattern = /azul/;
let replacement = 'rojo';
let newText = text.replace(pattern, replacement);
console.log(newText); // 'El cielo es rojo.'
Uso de banderas
let text = "Hola, Hola, hOLA";
let pattern = /hola/gi; // 'g' para global, 'i' para insensible a mayúsculas
let matches = text.match(pattern);
console.log(matches); // ['Hola', 'Hola', 'hOLA']
Expresiones regulares en Java
Java proporciona el paquete java.util.regex
para trabajar con expresiones regulares. A continuación, se presentan ejemplos.
Coincidencias básicas
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "El gato está en el tejado.";
String pattern = "gato";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println(m.group()); // 'gato'
}
}
}
Sustitución
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "El cielo es azul.";
String pattern = "azul";
String replacement = "rojo";
String newText = text.replaceAll(pattern, replacement);
System.out.println(newText); // 'El cielo es rojo.'
}
}
Uso de banderas
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "Hola, Hola, hOLA";
String pattern = "(?i)hola"; // 'i' para insensible a mayúsculas
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println(m.group()); // 'Hola', 'Hola', 'hOLA'
}
}
}
Expresiones regulares en C#
En C#, las expresiones regulares se manejan a través de la clase Regex
del espacio de nombres System.Text.RegularExpressions
. Aquí hay ejemplos de uso.
Coincidencias básicas
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "El gato está en el tejado.";
string pattern = "gato";
Match match = Regex.Match(text, pattern);
if (match.Success)
{
Console.WriteLine(match.Value); // 'gato'
}
}
}
Sustitución
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "El cielo es azul.";
string pattern = "azul";
string replacement = "rojo";
string newText = Regex.Replace(text, pattern, replacement);
Console.WriteLine(newText); // 'El cielo es rojo.'
}
}
Uso de banderas
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "Hola, Hola, hOLA";
string pattern = "hola";
MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
Console.WriteLine(match.Value); // 'Hola', 'Hola', 'hOLA'
}
}
}