regex - probar - Expresiones regulares: unir cualquier cosa
expresiones regulares javascript (7)
Normalmente el punto coincide con cualquier carácter, excepto las líneas nuevas .
Entonces, si .*
No funciona, configure la opción "dot coincide con las líneas nuevas, también" (o use (?s).*
).
Si usa JavaScript, que no tiene una opción "dotall", intente con [/s/S]*
. Esto significa "hacer coincidir cualquier cantidad de caracteres que sean espacios en blanco o espacios en blanco" - efectivamente "emparejar cualquier cadena".
Otra opción que solo funciona para JavaScript (y no es reconocida por ningún otro sabor regex) es [^]*
que también coincide con cualquier cadena. Pero [/s/S]*
parece ser más utilizado, tal vez porque es más portátil.
¿Cómo hago una expresión para que coincida absolutamente con cualquier cosa (incluidos los espacios en blanco)? Ejemplo:
Regex: compré _ ovejas.
Partidos: compré ovejas. Compré una oveja Compré cinco ovejas.
Intenté usar (. *) Pero parece que no funciona.
Actualización: lo hice funcionar, aparentemente el problema no estaba con las expresiones regulares, es solo que los caracteres (.) Estaban siendo escapados. Gracias de todos modos, gente.
Prueba esto:
I bought (.* )?sheep
o incluso
I bought .*sheep
Use .*
Y asegúrese de estar utilizando el equivalente de una sola línea de las implementaciones, de modo que coincida con las terminaciones de línea .
Hay una gran explicación aquí -> http://www.regular-expressions.info/dot.html
(.*?)
coincide con cualquier cosa, lo he estado utilizando durante años.
(.*?)
no funciona para mí. Estoy intentando hacer coincidir los comentarios rodeados por /* */
, que pueden contener varias líneas.
Prueba esto:
([a]|[^a])
Esta expresión regular coincide con a
o anything else expect a
. Absolutamente, significa emparejar todo.
Por cierto, en mi situación, //*([a]|[^a])*/
coincide con los comentarios del estilo C.
Gracias @mpen por una forma más concisa.
[/s/S]
Elige y memoriza 1 de los siguientes !!! :)
[/s/S]*
[/w/W]*
[/d/D]*
Explicación:
/s
: espacios en blanco /S
: no en blanco
/w
: word /W
: not word
/d
: digit /D
: not digit
(Puede intercambiar *
por +
si desea 1 o MÁS caracteres [en lugar de 0 o más]).
EDICION DE BONOS:
Si desea unir todo en una sola línea, puede usar esto:
[^/n]+
Explicación:
^
: no
/n
: linebreak
+
: para 1 personaje o más
<?php
$str = "I bought _ sheep";
preg_match("/I bought (.*?) sheep", $str, $match);
print_r($match);
?>