/ / Regex: come posso abbinare una logica regex 1 o più volte? - regex

Regex: Come posso abbinare alcune regex logiche 1 o più volte? - regex

Ho già una logica regex che dice acerca un tag div con class = qualcosa. Tuttavia, ciò potrebbe verificarsi più di una volta (uno dopo l'altro). Non puoi semplicemente aggiungere parentesi quadre attorno a quella complessa logica regex (es. [: Alcune complicate logiche regex già esistenti:] * - quindi come lo fai in regex? Voglio evitare di usare la logica del linguaggio di programmazione per aggiungere quella logica regex dopo se stesso se posso ...

Grazie

risposte:

1 per risposta № 1

Non analizzare HTML con regexen! Seriamente, è letteralmente impossibile nel caso generale.

Per rispondere alla tua domanda regex: se hai una regex arbitrariamente complessa R, puoi fare le seguenti cose:

  • (R) corrisponde a R e lo memorizza in un gruppo di acquisizione.
  • (?:R), se supportato dal tuo motore regex, corrisponde a R senza memorizzarlo in un gruppo di acquisizione.

In altre parole, gruppo di parentesi; le parentesi quadre, d'altra parte, sono solo per le classi di caratteri. Probabilmente vuoi qualcosa di simile (con una regex migliore per il tuo div) (?:<div class="something">s*)+: abbina il div seguito da un numero qualsiasi di spazi e trova quello una o più volte. Ma per favore ripensaci usando regexen per questo - mentre sono uno strumento utile per molte cose, HTML non è uno di questi.