Solución:
Si su IDE es compatible con s
(linea sola) bandera (por lo que .
carácter puede coincidir con nuevas líneas), puede buscar sus elementos con:
(text1).*(text2)|2.*1
Ejemplo con s
bandera
Si el IDE no es compatible con s
bandera, necesitarás usar [sS]
en lugar de .
:
(text1)[sS]*(text2)|2[sS]*1
Ejemplo con [sS]
Algunos idiomas usan $1
y $2
en lugar de 1
y 2
, por lo que es posible que deba cambiar eso.
EDITAR:
Alternativamente, si simplemente desea hacer coincidir que un archivo contiene ambas cadenas (pero en realidad no seleccionar nada), puede utilizar búsquedas anticipadas:
(?s)^(?=.*?text1)(?=.*?text2)
A esto no le importa el orden (o el número) de los argumentos, y para cada texto adicional que desee buscar, simplemente agregue otro (?=.*?text_here)
. Este enfoque es bueno, ya que incluso puede incluir expresiones regulares en lugar de cadenas simples.
text0[sS]*text1
Prueba esto. Esto debería hacerlo por ti.
Lo que hace esto es hacer coincidir todos, incluyendo multilínea. Similar a tener .*?
con s
bandera.
s
cuidar algo spaces,newlines,tabs
S
se ocupa de cualquier carácter que no sea de espacio.
Si desea que la expresión regular coincida con varias líneas, probaría:
text1[wW]*text2
Utilizando .
no es una buena opción, porque normalmente no coincide en varias líneas. Además, para hacer coincidir caracteres individuales, creo que usar corchetes es más idiomático que usar ( ... | ... )
Si desea que la coincidencia sea independiente del orden, use esto:
(?:text1[wW]*text2)|(?:text2[wW]*text1)