Forums Neueste Beiträge
 

RegEx Hilfe benötigt

07/09/2009 - 11:14 von Thomas Hübner | Report spam
Hi NG,

Ich stecke in einem RegEx fest. Gefunden werden soll das Suchmuster
"#foo" also eine Zeichenfolge mit führendem "#".

Die Zeichenfolge darf enthalten: \w, \d, à,ü,ö, +, -
Die Zeichenfolge darf nicht enthalten: Leerzeichen, Alle anderen
Satzzeichen wie Semikolon, Doppelpunkt, Ausrufzeichen etc.

Mögliche Vorkommen im String
"bla bla bla#foo", soll #foo finden
"bla bla #foo+ bla", soll #foo+ finden
"bla bla #foo-! bla", soll #foo- finden
"bla bla #foo;-) bla", soll #foo finden
"bla bla #foo#foo bla", soll 2x #foo finden
"bla bla #foo+#foo! bla", soll #foo+ und #foo finden

Mein bisheriges Pattern sieht so aus:
"\#[\w\d\+\-]+ " (letztes zeichen Leerzeichen) Das findet aber nur
Leerzeichenterminierte Muster und keine mit Ausrufzeichen z.B.

Evtl. hat jemand einen Tipp

Gruß,
Thomas
 

Lesen sie die antworten

#1 Martin Honnen
07/09/2009 - 12:14 | Warnen spam
Thomas Hübner wrote:
Hi NG,

Ich stecke in einem RegEx fest. Gefunden werden soll das Suchmuster
"#foo" also eine Zeichenfolge mit führendem "#".

Die Zeichenfolge darf enthalten: \w, \d, à,ü,ö, +, -
Die Zeichenfolge darf nicht enthalten: Leerzeichen, Alle anderen
Satzzeichen wie Semikolon, Doppelpunkt, Ausrufzeichen etc.

Mögliche Vorkommen im String
"bla bla bla#foo", soll #foo finden
"bla bla #foo+ bla", soll #foo+ finden
"bla bla #foo-! bla", soll #foo- finden
"bla bla #foo;-) bla", soll #foo finden
"bla bla #foo#foo bla", soll 2x #foo finden
"bla bla #foo+#foo! bla", soll #foo+ und #foo finden

Mein bisheriges Pattern sieht so aus:
"\#[\w\d\+\-]+ " (letztes zeichen Leerzeichen) Das findet aber nur
Leerzeichenterminierte Muster und keine mit Ausrufzeichen z.B.



Warum nimmst du nicht "\#[\w\d\+\-]+" als regulàren Ausdruck?

Dim input As String() = {"bla bla bla#foo", "bla bla #foo+
bla", "bla bla #foo-! bla", "bla bla #foo;-) bla", "bla bla #foo#foo
bla", "bla bla #foo+#foo! bla"}
Dim pattern As String = "\#[\w\d\+\-]+"
For Each s As String In input
Console.WriteLine("Testing ""{0}""", s)
For Each m As Match In Regex.Matches(s, pattern)
Console.WriteLine("|{0}|", m.Value)
Next
Console.WriteLine()
Next


Martin Honnen MVP XML
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen