Reguliarios išraiškos: Ar yra operatorius AND?

Akivaizdu, kad galite naudoti | (vamzdelį?), kad išreikštumėte OR, bet ar yra būdas išreikšti ir AND?

Konkrečiai, norėčiau suderinti teksto pastraipas, kuriose yra VISOS tam tikros frazės, bet ne tam tikra tvarka.

Naudokite nesudėtingą reguliariąją išraišką.

Tipinė (t. y. Perl/Java) užrašymo forma yra:

Perkalbėjimas: (?=expr)

Tai reiškia, kad "atitinka expr, bet po to tęsia atitikimą pradiniame atitikimo taške."

Galite atlikti tiek, kiek norite, ir tai bus "ir." Pavyzdys:

(?=atitinka šią išraišką)(?=atitinka ir šią)(?=o, ir tai)

Netgi galite pridėti užfiksavimo grupes nesudėtingų išraiškų viduje, jei reikia išsaugoti kai kuriuos jose esančius duomenis.

Komentarai (14)

Ar jūsų atveju neįmanoma atlikti AND su keliais sutampančiais rezultatais? pseudokodu

regexp_match(pattern1, data) && regexp_match(pattern2, data) && ...
Komentarai (1)

Tvarka visada numanoma reguliariosios išraiškos struktūroje. Kad pasiektumėte tai, ko norite, turėsite įvesties eilutę kelis kartus lyginti su skirtingomis išraiškomis.

Tai, ką norite padaryti, neįmanoma su viena regexp.

Komentarai (2)