08.08.2012, 11:15
Beitrag #1
|
A_Bachmann
LVF-Grünschnabel
Beiträge: 17
Registriert seit: Aug 2012
2013
-
DE
Deutschland
|
Reguläre Ausdrücke mit 'Muster suchen'
Hallihallo,
ich habe hier ein Labview 2011 (32 Bit). Aus einem String möchte ich mittels 'Muster suchen' einen bestimmten Teil bekommen. Leider scheint es aber meine regulären Ausdrücke nicht so zu interpretieren, wie ich mir das vorstelle.
Konkret sieht das so aus:
- Ich habe einen String (das ist die Antwort des FTP-Kommandos PASV): "227 Entering Passive Mode (123,124,125,126,204,112)."
- daraus möchte ich die letzten beiden Zahlen haben, also die 204 und die 112
Also nahm ich mir 'Muster suchen' zur Hand, habe den String-Eingang mit meinem String verknüpft und als regulären Ausdruck erstmal [0-9]+,[0-9]+[^,] genommen. Das sollte mir ja "204,112" zurückliefern. Leider bekomme ich da aber unverständlicherweise "123,124" (also die ersten beiden Zahlengruppen) heraus. Ich habe doch aber explizit in meinem Regexp gesagt, dass kein Komma mehr folgen soll. Wieso kommt dann also da trotzdem die erste Zahlengruppe heraus?
Darauf aufbauen gleich noch eine Frage: [0-9]+ ist ja zur Beschreibung einer maximal drei Stellen großen Zahl nicht ganz korrekt, normalerweise würde ich da als Regexp \d{1,3} schreiben. Doch das wird gar nicht von 'Muster suchen' erkannt, da wird immer gar nichts gefunden. Wieso?
|
|
|
08.08.2012, 11:57
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
RE: Reguläre Ausdrücke mit 'Muster suchen'
Ich hätte es so gemacht:
Werte suchen.vi (Größe: 8,25 KB / Downloads: 337)
Die ganzen Formatierungen und Abkürzungen blicke ich glaub' nie.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
08.08.2012, 12:24
Beitrag #3
|
M Nussbaumer
Zarathustra
Beiträge: 654
Registriert seit: Sep 2009
2009 SP1
2009
EN
6300
Schweiz
|
RE: Reguläre Ausdrücke mit 'Muster suchen'
(08.08.2012 11:15 )A_Bachmann schrieb: Hallihallo,
ich habe hier ein Labview 2011 (32 Bit). Aus einem String möchte ich mittels 'Muster suchen' einen bestimmten Teil bekommen. Leider scheint es aber meine regulären Ausdrücke nicht so zu interpretieren, wie ich mir das vorstelle.
Konkret sieht das so aus:
- Ich habe einen String (das ist die Antwort des FTP-Kommandos PASV): "227 Entering Passive Mode (123,124,125,126,204,112)."
- daraus möchte ich die letzten beiden Zahlen haben, also die 204 und die 112
Also nahm ich mir 'Muster suchen' zur Hand, habe den String-Eingang mit meinem String verknüpft und als regulären Ausdruck erstmal [0-9]+,[0-9]+[^,] genommen. Das sollte mir ja "204,112" zurückliefern. Leider bekomme ich da aber unverständlicherweise "123,124" (also die ersten beiden Zahlengruppen) heraus. Ich habe doch aber explizit in meinem Regexp gesagt, dass kein Komma mehr folgen soll. Wieso kommt dann also da trotzdem die erste Zahlengruppe heraus?
Darauf aufbauen gleich noch eine Frage: [0-9]+ ist ja zur Beschreibung einer maximal drei Stellen großen Zahl nicht ganz korrekt, normalerweise würde ich da als Regexp \d{1,3} schreiben. Doch das wird gar nicht von 'Muster suchen' erkannt, da wird immer gar nichts gefunden. Wieso?
Du musst das VI "Match Regular Expression" in der String-Palette verwenden anstatt das "Match Pattern".
Dann klappts auch wie gewünscht
Gruss Marc
|
|
|
08.08.2012, 12:48
Beitrag #4
|
|
|
08.08.2012, 13:28
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Reguläre Ausdrücke mit 'Muster suchen'
(08.08.2012 12:48 )A_Bachmann schrieb: Damit klappt es, danke. Aber warum? Laut der Hilfe kann ich bei beiden VIs reguläre Ausdrücke benutzen.
Zitat aus der erweiterten Hilfe von Match Pattern:
Code:
The Match Pattern function gives you fewer options for matching strings but performs more quickly than the Match Regular Expression function. For example, the Match Pattern function does not support the parenthesis or vertical bar (|) characters.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.08.2012, 14:29
Beitrag #6
|
A_Bachmann
LVF-Grünschnabel
Beiträge: 17
Registriert seit: Aug 2012
2013
-
DE
Deutschland
|
RE: Reguläre Ausdrücke mit 'Muster suchen'
Ok, also ist es wohl eher so, dass ich mit 'Muster suchen' nur Basic RE nutzen kann und mit 'Regulären Ausdruck suchen' dann auch Extended REs? Das hätte NI aber ruhig auch einfach so direkt in die Hilfetexte schreiben können, da wüsste gleich jeder, was gemeint ist... Naja gut ok.
|
|
|
| |