sql >> Database >  >> RDS >> Oracle

Hoe kijk je vooruit in regex?

Er zijn twee benaderingen. Een daarvan is om een ​​enkele uitdrukking samen te stellen die alle mogelijke alternatieven afhandelt:

^[a-zA-Z][0-9][a-zA-Z0-9-,._;:]{6,}$
  |
^[a-zA-Z][a-zA-Z0-9-,._;:][0-9][a-zA-Z0-9-,._;:]{5,}$
  |
^[a-zA-Z][a-zA-Z0-9-,._;:]{2}[0-9][a-zA-Z0-9-,._;:]{4,}$

etc. Dit is een combinatorische nachtmerrie, maar het zou werken.

Een veel eenvoudigere benadering is om dezelfde string twee keer te valideren met twee uitdrukkingen:

^[a-zA-Z0-9-,._;:]{8,}$          # check length and permitted characters

en

[a-zA-Z].*[0-9]|[0-9].*[a-zA-Z]  # check required characters

EDIT:@briandfoy wijst er terecht op dat het efficiënter is om elk vereist teken afzonderlijk te zoeken:

[a-zA-Z]                         # check for required alpha

en

[0-9]                            # check for required digit


  1. Tekstcompressie in PostgreSQL

  2. Hoe kan ik een maximum aantal rijen in de MySQL-tabel instellen?

  3. MySQL-verkeer in scripts versleutelen

  4. Hoe loop je door alle SQL-tabellen?