sql >> Database teknologi >  >> RDS >> Oracle

Hvordan erstatter man lookahead i regex?

Der er to tilgange. Den ene er at komponere et enkelt udtryk, som håndterer alle mulige alternativer:

^[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,}$

osv. Dette er et kombinatorisk mareridt, men det ville virke.

En meget enklere tilgang er at validere den samme streng to gange ved hjælp af to udtryk:

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

og

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

EDIT:@briandfoy påpeger korrekt, at det vil være mere effektivt at søge efter hvert påkrævet tegn separat:

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

og

[0-9]                            # check for required digit
 


  1. Hvordan sætter jeg backticks i et kolonnenavn kaldet key for hibernate

  2. PG::ConnectionBad (FATAL:pg_hba.conf afviser forbindelse for vært 172.17.0.1, bruger XXX, database XXX, SSL fra):

  3. Docker compose postgresql service - kan du ikke oprette bruger og database under build?

  4. Sådan opsætter du destinationskatalog for arkivlog i Oracle-databasen