Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups microsoft.public.de.* 1 Forum > Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp Forum microsoft.public.de.german.entwickler.dotnet.csharp

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11-02-2009, 08:59 PM
Tamara Mikes
 
Beiträge: n/a
Standard RegEx

Salü alle zusammen

Ich habe ein String der schaut wie folgt aus:

href=(["'](?<url>.*?)["']|(?<url2>\S*?)\s)

Dann habe ich einen Quelltext:

Das ist ein <a href="local.htm">Link</a> auf lokale Seite mit Gänsefüsschen.
Das ist ein <a href=AuchLocal.htm>Link</a> auf lokale Seite ohne
Gänsefüsschen.
Ein <a href="http://www.daomain.ch">Link</a> auf Domain
Das ist ein <a href="Mein Produkt.htm">Link mit Leerzeichen</a> Leerzeichen.


Wenn ich im Tool Expresso (http://www.nettz.de/Service/regexp/index.cgi)
diesen String eingebe, bekomme ich wie ich es erwarte folgendes Resultat:

href="local.htm"
href=AuchLocal.htm>Link</a>
href="http://www.daomain.ch"
href="local.htm"

Wenn ich jedoch auf der Seite http://www.nettz.de/Service/regexp/index.cgi
das prüfe, bekomme ich ein Fehler in der Auswertung meines RegExp: Sequence
(?.*?)["']|(?\S*?)\s)/

Ebenso erhalte ich in C# eine falsche Antwort, nämlich immer bis und mit
</a>.

Eigentlich würde ich als Ziel folgende Ausgabe haben wollen:

local.htm
AuchLocal.htm
http://www.daomain.ch
local.htm

Also immer nur der Domainname ohne was drum herum.
Was mache ich falsch?

Vielen Dank für Hinweise
Gruss Tamara


Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 11-03-2009, 05:25 AM
Werner Perplies
 
Beiträge: n/a
Standard Re: RegEx

Hallo Tamara,

Am Mon, 2 Nov 2009 21:59:38 +0100 schrieb Tamara Mikes:

> Salü alle zusammen
>
> Ich habe ein String der schaut wie folgt aus:
>
> href=(["'](?<url>.*?)["']|(?<url2>\S*?)\s)
>
> Dann habe ich einen Quelltext:
>
> Das ist ein <a href="local.htm">Link</a> auf lokale Seite mit Gänsefüsschen.
> Das ist ein <a href=AuchLocal.htm>Link</a> auf lokale Seite ohne
> Gänsefüsschen.
> Ein <a href="http://www.daomain.ch">Link</a> auf Domain
> Das ist ein <a href="Mein Produkt.htm">Link mit Leerzeichen</a> Leerzeichen.
>
>
> Wenn ich im Tool Expresso (http://www.nettz.de/Service/regexp/index.cgi)
> diesen String eingebe, bekomme ich wie ich es erwarte folgendes Resultat:
>

Ohne auf Deinen Ausdruck näher einzugehen, ich bekomme mit meinem Tool (C#)
auch diese Lösung.

> href="local.htm"
> href=AuchLocal.htm>Link</a> <---
> href="http://www.daomain.ch"
> href="local.htm"
>


Vielleicht liegt's an den RegEx-Optionen?
-> IgnoreWhitespace?

....

>
> local.htm
> AuchLocal.htm
> http://www.daomain.ch
> local.htm
>
> Also immer nur der Domainname ohne was drum herum.
> Was mache ich falsch?
>
> Vielen Dank für Hinweise
> Gruss Tamara



Werner
--
Reguläre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
Mit Zitat antworten
  #3  
Alt 11-03-2009, 05:28 AM
Werner Perplies
 
Beiträge: n/a
Standard Re: RegEx

Am Tue, 3 Nov 2009 06:25:30 +0100 schrieb Werner Perplies:


> Vielleicht liegt's an den RegEx-Optionen?
> -> IgnoreWhitespace?

Sorry, nein, da hatte sich beim Copy ein CRLF eingeschlichen, es sollte
_ohne_ (None) Optionen so funktionieren.

>
> Werner



Werner
--
Reguläre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
Mit Zitat antworten
  #4  
Alt 11-03-2009, 06:47 AM
Frank Dzaebel
 
Beiträge: n/a
Standard Re: RegEx

Hallo Tamara,

> Wenn ich im Tool Expresso [...] diesen String eingebe, bekomme ich wie ich
> es erwarte folgendes Resultat: [...]
> Wenn ich jedoch auf der Seite http://www.nettz.de/Service/regexp/index.cgi
> das prüfe, bekomme ich ein Fehler [...]


Das "Netzz" Tool kennt offensichtlich die Gruppen-Syntax nicht wie:
(?<Gruppe>.*). Expresso und C# sollten da gemäss .NET Syntax arbeiten.

Dass Du bei C# was "falsches" bekommst, liegt evtl. an
einer falschen Umsetzung des Verbatim-Modus.
Hier eine Möglichkeit:

private void Form1_Load(object sender, EventArgs e)
{
string href = *"href=([""'](?<url>.*?)[""']|(?<url2>\S*?)\s)";
string quellText =
*"Das ist ein <a href=""local.htm"">Link</a> auf lokale Seite mit
Gänsefüsschen.
Das ist ein <a href=AuchLocal.htm>Link</a> auf lokale Seite ohne
Gänsefüsschen.
Ein <a href=""http://www.daomain.ch"">Link</a> auf Domain
Das ist ein <a href=""Mein Produkt.htm"">Link mit Leerzeichen</a>
Leerzeichen.";

Regex rx = new Regex(href);
MatchCollection matches = rx.Matches(quellText);
StringBuilder sb = new StringBuilder();
foreach (Match match in matches) sb.AppendLine(match.Value);
MessageBox.Show(sb.ToString());
}
_____

BTW: eine richtige href Regex ist das natürlich nicht.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Mit Zitat antworten
  #5  
Alt 11-03-2009, 06:52 AM
Werner Perplies
 
Beiträge: n/a
Standard Re: RegEx

Tamara,

Am Mon, 2 Nov 2009 21:59:38 +0100 schrieb Tamara Mikes:
[...]
Eine Lösung könnte sein:
(href=\"(?<result>.*?)\")|((href=(?<result>.*?))>)

Das gewünschte Ergebnis stände dann in "result":

http://www.weepee.de/wps_regex/RegExhref.png

> Vielen Dank für Hinweise
> Gruss Tamara



Werner
--
Reguläre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Regex Christian Mauerer Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp 17 07-07-2009 02:17 PM
regex Chris Leick Newsgroup at.linux 16 06-15-2009 10:39 PM
regex Chris Leick Newsgroup at.linux 0 06-11-2009 03:27 PM
regex Chris Leick Newsgroup at.linux 0 06-11-2009 03:27 PM
RegEx A. Sicken Newsgroup de.comp.lang.perl.misc 2 04-29-2009 12:35 AM


Alle Zeitangaben in WEZ. Es ist jetzt 02:06 PM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints