El carácter .
en un php regex acepta todos los caracteres, excepto una nueva línea. ¿Qué puedo usar para aceptar TODOS los caracteres, incluidas las nuevas líneas?PHP Regex Cualquier carácter
Respuesta
Esto es comúnmente utilizado para capturar todos los personajes:
[\s\S]
usted podría utilizar cualquier otra combinación de "Tipo-X + no Tipo-X" de la misma manera:
[\d\D]
[\w\W]
pero [\s\S]
es reconocido por la convención como una abreviatura de 'realmente nada'.
También puede usar el .
si cambia la expresión regular a modo "dotall" (a.k.a "línea única") a través del modificador "s"
. A veces esa no es una solución viable (regex dinámico en un recuadro negro, por ejemplo, o si no desea modificar el entero regex). En tales casos, las otras alternativas hacen lo mismo, sin importar cómo se configure la expresión regular.
Es el carácter .
que significa "cada carácter" (editar: OP editado). Y hay que añadir la opción s a su expresión regular, por ejemplo:
preg_match("`(.+)`s", "\n");
¿No se supone que hay barras diagonales al principio y al final de una expresión regular? – Entity
Puede ser, pero cualquier par de delimitadores servirá. –
No en PHP. Tiene que comenzar y terminar con un delimitador (puede elegirlo), y cada carácter que pase el último delimitador es una opción (es decir, U para desgregado, i para mayúsculas y minúsculas, etc.) –
habría
[.\n]+
no funciona?
¿Qué tal (.|\n)+
? Lo probé y parece funcionar.
Estoy bastante seguro de que esta es la interpretación literal de exactamente lo que estaba pidiendo.
No, no lo haría. – SLaks
El '.' en una clase de caracteres no significa" ningún carácter ". Significa "un punto". Las clases de caracteres tienen su propia sintaxis. ;-) – Tomalak
@Tomalak: Gracias por la explicación, me acabo de dar cuenta ahora. Creo que debería probar mis respuestas antes de publicarlas. He editado mi respuesta ahora. – gnomed
Los Manual PHP page for Dot establece que:
Si la opción PCRE_DOTALL se establece, entonces los puntos coinciden con los saltos de línea también.
Falta algo importante aquí. [\s\S]
coincide con un carácter, mientras que una nueva línea puede ser una secuencia de caracteres. (Windows usa dos caracteres: \r\n
). Ni .
(con el modificador DOT_ALL) ni [\s\S]
coincidirán con la secuencia de nueva línea. La mejor forma de unir cualquier personaje o cualquier nueva línea es (.|\R)
, "todo excepto una nueva línea o una nueva línea". \R
coincide con \n
, \r
y \r\n
.
- 1. Regex cualquier carácter ascii
- 2. ¿Cómo se permite cualquier carácter en RegEx?
- 3. Regex partido de cualquier carácter 5 o más veces
- 4. php regex o | operador
- 5. Expresión regular solo para longitud: cualquier carácter
- 6. regex carácter unicode en vim
- 7. JSON especifica "cualquier carácter UNICODE"?
- 8. Regexp: Cualquier carácter excepto secuencia
- 9. JavaScript regex: encuentre el carácter no numérico
- 10. regex para que coincida con un solo carácter que sea cualquier cosa excepto un espacio
- 11. RegEx en texto sublime: ¿Coincide con cualquier carácter, incluidas las líneas nuevas?
- 12. .Net Regex que combina cadenas con cualquier carácter que no sea ASCII
- 13. Regex para que coincida con cualquier carácter, incluidas las líneas nuevas
- 14. de REGEX - Unir carácter especial en cualquier lugar en la cadena de
- 15. Regex para que coincida con cualquier carácter que no sea palabra, pero menos
- 16. Regex cómo hacer coincidir un carácter opcional
- 17. python, regex split y carácter especial
- 18. Regex para eliminar un carácter repetido específico
- 19. Regex para caracteres de palabra en cualquier idioma
- 20. Permitir cualquier carácter en la URL en CodeIgniter
- 21. php regex validación
- 22. Url enrutamiento regex PHP
- 23. PHP regex estrellarse apache
- 24. PHP: cadena para regex
- 25. Carácter meta de Java RegEx (.) Y punto ordinario?
- 26. ¿Cómo eliminar el carácter ETX del final de una cadena? (Regex o PHP)
- 27. Eliminar el carácter de nueva línea de una cadena mediante php regex
- 28. PHP regex - número flotante válido
- 29. Extraer coincidencias de php regex
- 30. php regex para eliminar HTML
¡Perfecto! ¡Gracias! – Entity
Parece que esto es para un solo personaje en lugar de para todos los personajes .... –
¿Y por qué piensas eso? – Tomalak