solo - regex termina con
ack regex: uniendo dos palabras en orden en la misma lĂnea (1)
Desea buscar word_1 , seguido de cualquier cosa, cualquier número de veces, seguido de word_2 . Eso debería ser
word_1.*word_2
Parece que estás usando * como se usa a menudo en las búsquedas en la línea de comandos, pero en expresiones regulares es un cuantificador para el carácter anterior, lo que significa que coincida al menos 0 veces. Por ejemplo, la expresión regular a* coincidirá con 0 o más a s, mientras que la expresión regular a+ coincidirá con al menos una a .
El metacarácter regex que significa "coincidir con cualquier cosa" es . , entonces .* "significa" coincidir con cualquier cosa, cualquier número de veces. Consulte perlrequick para obtener una breve introducción sobre el tema.
Me gustaría encontrar líneas en archivos que incluyan dos palabras, word_1 y word_2 en orden, como en la Line A continuación, pero no como en la Line B o la Line C :
Line A: ... word_1 .... word_2 ....
Line B: ... word_1 ....
Line C: ... word_2 ....
Yo he tratado
$ack ''*word_1*word_2''
$ack ''(word_1)+*(word_2)+''
y los mismos comandos con ^ final de la expresión regular (en un intento de seguir la sintaxis de expresión regular de Perl).
Ninguno de estos comandos devuelve los archivos o las líneas que me interesan.
¿Qué estoy haciendo mal?
¡Gracias!