Regulārās izteiksmes: Vai ir operators AND?

Acīmredzot, lai atveidotu OR, var izmantot | (cauruli?), bet vai ir veids, kā atveidot arī AND?

Konkrētāk, es gribētu salīdzināt teksta rindkopas, kurās ir VISAS noteiktas frāzes, bet ne konkrētā secībā.

Izmantojiet regulāru izteiksmi, kas neprasa lielu patēriņu.

Tipisks (t. i., Perl/Java) apzīmējums ir:

(?=?=expr)

Tas nozīmē "saskaņot expr, bet pēc tam turpināt saskaņošanu sākotnējā saskaņošanas punktā."

Jūs varat veikt tik daudz šādu darbību, cik vēlaties, un tas būs "un." Piemērs:

(?=atbilst šai izteiksmei)(?=atbilst arī šai)(?=oh, un šī)

Varat pat pievienot uztveršanas grupas iekšpusē, ja nepieciešams saglabāt dažus no tajās esošajiem datiem.

Komentāri (14)

Vai jūsu gadījumā nav iespējams veikt AND uz vairākiem atbilstošiem rezultātiem? pseidokodē.

regexp_match(pattern1, data) && regexp_match(pattern2, data) && ...
Komentāri (1)

Kārtība vienmēr ir ieteikta regulārās izteiksmes struktūrā. Lai sasniegtu vēlamo rezultātu, ievades virkne būs jāsalāgo vairākas reizes ar dažādām izteiksmēm.

Tas, ko jūs vēlaties izdarīt, nav iespējams ar vienu regexp.

Komentāri (2)