2015-11-16 1 views
0

Je dois tracer une chaîne pour une valeur particulière à analyser. Est-il possible d'obtenir la sortie requise en utilisant des expressions régulières.Comment analyser une chaîne à l'envers en utilisant des expressions régulières sql

;2N9XsPQQ;PARAMETER_STRING= 

requis o/p: 2N9XsPQQ

Merci à l'avance

+0

On ne sait pas pour moi ce que vous entendez par "backtrace" ou "analyser une chaîne à l'envers". De votre échantillon tout ce que je peux déduire est que vous voulez la valeur délimitée par des points-virgules. Pouvez-vous clarifier? – ScottMcG

+0

@Dileep: si la solution proposée fonctionne pour vous, veuillez l'accepter ou expliquer pourquoi elle ne fonctionne pas, je vais essayer de corriger en conséquence. –

Répondre

0

Je pense simple:

NSString *pattern = @"(?<=;).*(?=;)"; //or equivalent 

fera le travail pour vous.

en ligne demo

MISE À JOUR

sur Netezza SQL le lookbehind n'est pas disponible alors essayez l'une des solutions alternatives:

# Tested on Postgresql (no Netezza, postgres derived db, available atm) 
SELECT regexp_matches('123abc;2N9XsPQQ;PARAMETER_STRING=',';(.*);'); 
# OR 
SELECT regexp_replace('123abc;2N9XsPQQ;PARAMETER_STRING=','.*;(.*);.*','\1'); 
+0

J'essaye d'analyser la chaîne en utilisant Netezza SQL. c'est donner zéro pour moi. dldhhahddsahhgdgsagdjsdg5dcdsa5; 2N9XsPQQ; PARAMETER_STRING = dsagD% SDBHSDBAHS^c'est comme ma chaîne. – Dileep

+0

@Dileep: je ne peux pas tester sur Netezza SQL, j'ai testé sur Postgres (dont est dérivé Netezza). Je suis assez sûr que les deux méthodes sont correctes. Faites le moi savoir –