Sie können Regex und benannte Gruppen verwenden.
%Vor% (?<City>[^(]*)\((?<PR>[^)]*)\)
:
(?<City>XXX)
definiert eine Gruppe namens City
[^(]*
entspricht einem beliebigen Zeichen, das kein (
zwischen 0 und unbegrenzten Zeiten ist \(
entspricht einem (
einmal (?<PR>XXX)
definiert eine Gruppe namens PR
[^)]*
entspricht einem beliebigen Zeichen, das kein )
zwischen 0 und unbegrenzten Zeiten ist \)
entspricht einem )
einmal Regex?
Sie können Ihr Muster in Erfassungsgruppen aufteilen und von dort fortgehen.
%Vor%Das wird die Stadt in der ersten Gruppe und Ihre PR / Provinz Teil in der zweiten Gruppe erfassen.
Bearbeiten: madgnomes Regex entfernt die Parathesen aus dem Match, auch wenn der Regex an dieser Stelle unheimlich wird:)
Sie haben ein paar Methoden auf string
Sie sind Split .
Beispiel
%Vor%Das würde drucken:
Stadt
(PR)
Sie können es auch so machen
%Vor%Sie können die Paranthese mit anderen String-Methoden entfernen, wenn Sie möchten.
Man könnte argumentieren, dass dies nicht der beste Weg ist. Es ist einfach und geben Sie wollen Sie wollen. Wie andere vorgeschlagen haben, ist Regex wahrscheinlich der "sauberste" Weg, es zu tun.
Hinweis
Wenn Sie Städte mit Leerzeichen im Namen unterstützen möchten, wird diese Methode nicht so gut für Sie funktionieren. Ich würde dann eine der anderen Antworten vorschlagen.
Wenn die Provinz immer in Klammern steht und der Städtename keine Klammern enthält, können Sie die Split-Funktion verwenden.
%Vor%Die Balkenvariable enthält die Stadt in der ersten Spalte des Arrays und die Provinz in der zweiten Spalte (obwohl Sie die rechte Klammer entfernen möchten).
Gibt es eine Chance, dass Sie das DB-Design so ändern können, dass es ein anderes Feld enthält, um festzulegen, ob es sich um eine Provinz oder einen Bundesstaat handelt? Dies ist ein schreckliches Design, und um es zu umgehen, müssen Sie definitiv etwas hässlichen Code schreiben ... Etwas in der Art von
%Vor%Obwohl ausgezeichnete Analyseoptionen erwähnt wurden, möchte ich nur vorschlagen, dass Sie in Betracht ziehen, zur Quelle zu gehen und Ihre Datenbankabfrage und möglicherweise sogar die Datenbank selbst zu modifizieren.
Offensichtlich ist das nicht immer möglich, weshalb Sie die Frage wahrscheinlich so stellen, wie Sie sind, aber die Tatsache, dass Sie Daten auf diese Weise erhalten, bedeutet für mich, dass die Daten anders strukturiert oder erhalten werden müssen .
Lassen Sie die folgende SQL SELECT-Anweisung die ganze Arbeit für Sie erledigen:
%Vor%Hier ist der Datensatz, den ich zum Testen erstellt habe:
Joel, 1 Software-Straße, NewYork (NY), 12345
Jeff, 321 Horror Lane, San irgendwo (CAL), 90210
Zamboni, 888 Wpf Rd, Vancouver (Britisch-Kolumbien), V0S1A0
Bill, 7 Hauptstr., Vista (WA), 77777