2017-09-08 2 views
2

Je dois écrire une requête HSQLDB qui divise cette chaîne sur «/»SQL Regex - Sélectionnez tout ce qui suit «/» et divisé en un tableau

/2225/golf drive/#305/Huntsville/AL/1243 

C'est là où je suis à

select REGEXP_SUBSTRING_ARRAY(Terms, ''/[a-zA-Z0-9]*'') as ARR from Address 
ce

me donne

/2225, /golf, /, /Huntsville, /AL, /1243 - (Missing "#305" and "drive" in second split) 

Comment puis-je modifier l'expression régulière telle qu'elle comprend tout après «/» et me donner ce résultat

/2225, /golf drive, /#305, /Huntsville, /AL, /1243 

Répondre

3

Dans ce cas pourquoi ne pouvez-vous pas utiliser /[a-zA-Z0-9, #]* regexp? Cela semble bon pour votre objectif.

J'ai vérifié, cela fonctionne pour moi ici: https://regex101.com/r/8bJQEk/1

PS Ce regexp /\/([^\/]*)/g peut aide à tout diviser. Soyez prudent avec les barres obliques). Example

+0

Mais cela ne fonctionne qu'aveC#. Je peux obtenir n'importe quel caractère spécial dans la chaîne – keanu

+0

@keanu Si vous voulez diviser quelque chose, vous pouvez l'utiliser '/ ([^ /] *)' regexp. Cela fonctionne [ici] (https://regex101.com/r/8bJQEk/3) – Denniselite

+1

Simple et élégant. Merci Denniselite – keanu