/ / Existuje v Pythone negatívny regulárny výraz (negácia)? - python, regex

Existuje negatívny regulárny výraz v Pythone (negácia)? - python, regex

Povedzme, že chcem vytvoriť RE, ktoré opisuje všetky celé čísla.

(+|-)?[0-9]+

Definícia však tiež zodpovedá týmto číslam: +0, -0, 0045

Na 0045 príležitosť možno pravdepodobne vyriešiť pomocou výrazu lookback, ale ako môžem ospravedlniť vylúčenie +0 a -0 reťazcov z RE. Myslel som, že to bola syntax ^(+0|-0), ale to je pravdepodobne syntax RE pre inú štruktúru, nie Pythons.

odpovede:

3 pre odpoveď č. 1

Potom sa môže nulový prípad riešiť samostatne. Regulárny výraz pre nulové alebo nenulové čísla:

0|[+-]?[1-9][0-9]*

Predpoklady boli:

  • žiadne nadbytočné položky nula.
  • žiadne znamienko pred nulou
  • nadbytočné znamienko plus pred nenulovými číslami.

Mimo skupiny znakov (s hranatými zátvorkami) symbol ^ znamená začiatok reťazca alebo riadku v závislosti od nastavenia príznaku re.MULTILINE.