¿Cuál es la expresión regular para comprobar simplemente si una cadena contiene una determinada palabra (por ejemplo, "Prueba")? He hecho algunas búsquedas en Google, pero no puedo obtener un ejemplo directo de dicha expresión regular. Esto es para un script de compilación pero no tiene relación con ningún lenguaje de programación en particular.Regex para cadena contiene?
Respuesta
Suponiendo estilo PCRE regular de sabores de expresiones regulares:
Si desea comprobar por ella como una sola, la palabra completa, es \bTest\b
, con banderas apropiadas para el caso de falta de sensibilidad si se desea y delimitadores para su lenguaje de programación. \b
representa un "límite de palabras", es decir, un punto entre los caracteres donde se puede considerar que una palabra comienza o termina. Por ejemplo, dado que los espacios se usan para separar palabras, habrá un límite de palabras a cada lado de un espacio.
Si desea comprobarlo como parte de la palabra, simplemente es Test
, de nuevo con indicadores apropiados para la insensibilidad de mayúsculas y minúsculas. Tenga en cuenta que, por lo general, los métodos dedicados de "subcadena" tienden a ser más rápidos en este caso, ya que eliminan la sobrecarga de analizar la expresión regular.
Eso sí, no anclar su patrón:
/Test/
la expresión regular anterior comprobará la cadena literal "de prueba" que se encuentra en algún lugar dentro de él.
¡Gracias, no sabía que era así de simple! Definitivamente no vi esto en mi Google. ¿A qué te refieres con no anclar mi patrón? – dotnetdev
Puede anclar un patrón para que coincida con el principio o el final de una cadena, p./^ Prueba/o/Prueba $/respectivamente o incluso/^ Prueba $/para coincidir exactamente. El ejemplo es fatuo porque no proporciona ningún beneficio sobre la comparación por igualdad pero, por ejemplo, al hacer la validación de campo de formulario, una expresión regular como/^ \ d + $/solo coincidirá si el campo contiene al menos un dígito y nada más que dígitos numéricos. –
Llego unos años tarde, pero ¿por qué no?
[Tt][Ee][Ss][Tt]
Esta respuesta apareció en la cola de revisión de baja calidad, presumiblemente porque no explicó el código. Si lo explica (en su respuesta), es mucho más probable que obtenga más votos positivos, ¡y el que pregunta realmente aprende algo! –
Esto no es muy generalizable. Imagínese si la palabra que tuvo que buscar provino de un usuario. Tendría que generar el patrón '[Aa]' para cada letra y se pondría bastante feo bastante rápido. –
- 1. Grep regex que NO contiene cadena
- 2. Regex para cadena que no contiene varias palabras específicas
- 3. PHP: cadena para regex
- 4. Regex - No contiene ciertos caracteres
- 5. Ruby regex "contiene una palabra"
- 6. Regex - Si contiene '%', sólo puede contener '% 20'
- 7. si la oración contiene cadena
- 8. Regex para hacer coincidir la cadena que contiene dos nombres en cualquier orden
- 9. RegEx para saber si una cadena no contiene un carácter específico
- 10. Regex para encontrar una cadena sin terminar
- 11. RegEx para hacer coincidir cadena completa
- 12. regex para URL incluyendo cadena de consulta
- 13. regex para buscar una cadena entre corchetes []
- 14. RegEx para que una cadena NO contenga dos cadenas diferentes
- 15. Regex solo para números
- 16. Makefile: contiene cadena
- 17. Regex: no coincide si string contiene espacios en blanco
- 18. Regex para eliminar espacios
- 19. Regex para todas las cadenas que no contengan una cadena?
- 20. Usando Java Regex, ¿cómo comprobar si una cadena contiene alguna de las palabras de un conjunto?
- 21. cada partido RegEx en cadena
- 22. string.match (regex) vs regex.match (cadena)
- 23. Regex para eliminar todos los caracteres especiales de la cadena?
- 24. regex permitir solo números o cadena vacía
- 25. regex: cadena con partes opcionales
- 26. Coincidir cadena dinámica usando regex
- 27. extracción cadena de C# RegEx
- 28. Cómo verificar si una cadena contiene http: // al inicio
- 29. C++ 11 regex: comprobando si la cadena comienza con regex
- 30. Cadena C# no contiene posibles?
"' \ b' representa un "límite de palabras", es decir, algo que separa dos palabras (por ejemplo, un espacio) ". '\ b' no coincide con un espacio; es una aserción que coincide con * entre * caracteres (o al principio o al final de una línea, en la mayoría de los casos). – strager
@strager: Sí, tienes razón, mi explicación fue un poco imprecisa. Voy a editar –