Tengo un feed en Yahoo Pipes y quiero hacer coincidir todo después de un signo de interrogación.
Hasta ahora he descubierto cómo hacer coincidir el signo de interrogación usando ..
\?
Ahora solo para que coincida con todo lo que está después / sigue al signo de interrogación.
\?.*
coincide con todo (incluida una cadena vacía) después?
."\\?"
Respuestas:
Quieres el contenido del primer grupo de captura.
fuente
Feb 5 '11 at 10:41
. Todavía es bueno señalar todos los cambios que obtenemos. Tal vez alguien aprenda de Dreamonic señalando esto.Prueba esto:
Los paréntesis son un grupo de captura que puede utilizar para extraer la parte de la cadena que le interesa.
Si la cadena puede contener nuevas líneas, es posible que deba usar el modificador "puntuar todo" para permitir que el punto coincida con el carácter de la nueva línea. Si tiene que hacer esto o no, y cómo hacerlo, depende del idioma que esté utilizando. Parece que olvidó mencionar el lenguaje de programación que está utilizando en su pregunta.
Otra alternativa que puede utilizar si su idioma admite aserciones de búsqueda atrás de ancho fijo es:
fuente
Con la técnica de mirar atrás positivo :
(?<=\?).*
(Estamos buscando un texto precedido por un signo de interrogación aquí)
Ejemplo
Básicamente,
?<=
es una construcción de grupo, que requiere el signo de interrogación de escape, antes de que se pueda hacer cualquier coincidencia.Funcionan muy bien, pero no todas las implementaciones los admiten.
fuente
Si desea hacer coincidir todos los caracteres después de "?" puede usar un grupo para que coincida con cualquier carácter, y será mejor que use el signo "$" para indicar el final de la línea.
fuente
.
valor predeterminado no coincide con el carácter de nueva línea. Como resultado, incluso sin el carácter de final de línea en la expresión, coincidiría hasta el final de la línea.Visite este sitio: http://rubular.com/ Básicamente, el sitio le permite ingresar un texto de ejemplo (lo que estaría buscando en su sitio) y luego, a medida que crea la expresión regular, resaltará lo que se está comparando tiempo real.
fuente
/([a-zA-Z]{4}):/
coincidiráTest: Welcome
y agarraráTest
str.replace(/^.+?\"|^.|\".+/, '');
A veces es malo usar esto cuando desea seleccionar qué más eliminar entre "" y no puede usarlo más de dos veces en una cadena. Todo lo que hace es seleccionar lo que no esté entre "" y reemplazarlo con nada.
Incluso para mí es un poco confuso, pero intentaré explicarlo.
^.+?
(nada OPCIONAL) hasta el primero y"
luego|
O / detener (aún investigando lo que realmente significa) hasta que no^.
haya seleccionado nada hasta antes del segundo"
uso (|
detener / en). Y seleccione todo lo que viene después con. +.fuente