Ovviamente, si può usare il |
(pipe?) per rappresentare OR
, ma c'è un modo per rappresentare anche AND
?
In particolare, vorrei abbinare paragrafi di testo che contengono TUTTO di una certa frase, ma in nessun ordine particolare.
Usa un'espressione regolare che non consuma.
La notazione tipica (cioè Perl/Java) è:
(?=
expr)
Questo significa "corrisponde a expr ma dopo continua a corrispondere al match-point originale."
Puoi fare tutte queste cose che vuoi, e questo sarà un "and." Esempio:
(?=match this expression)(?=match this too)(?=oh, and this)
Puoi anche aggiungere gruppi di cattura all'interno delle espressioni che non consumano, se hai bisogno di salvare alcuni dei dati in esse contenuti.
L'ordine è sempre implicito nella struttura dell'espressione regolare. Per ottenere ciò che volete, dovrete far corrispondere la stringa di input più volte con diverse espressioni.
Quello che volete fare è non possibile con una singola regexp.