AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Regex.Matches mit zwei Variablen

Ein Thema von ferby · begonnen am 25. Apr 2013 · letzter Beitrag vom 25. Apr 2013
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Regex.Matches mit zwei Variablen

  Alt 25. Apr 2013, 12:33
Hallo,

wir haben ein Problem mit Regex.Matches.

Wir haben folgenden String:

string a = "BlaBlaBla (Link)->http://www.google.com id vel lorem.";

Ich will als output jetzt folgenden String haben:

string b = "BlaBlaBla <a href="http://www.google.com">Link</a> id vel lorem";

Wir arbeiten jetzt schon seit 3 Stunden daran aber wir kommen nicht weiter

foreach (Match match in Regex.Matches(preview_text, "(([^)]*?))-([>]|[&][g][t][;])(http://[A-Za-z0-9$%/&;.-_ÜüÖöÄä?=]*)e"))
{
string part_1 = match.ToString();
string part_2 = match.Groups[1].Value;
string part_3 = ??;
}

also in part_1 sollte "http://www.google.com" in part_2 sollte "Link" und in part_3 sollte "(Link)->http://www.google.com " stehen.

Weiß wer wie das in C# hin haut.

lg,
ferby
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Regex.Matches mit zwei Variablen

  Alt 25. Apr 2013, 13:22
hallo,

hat sich erledigt,

ist so möglich:

string a = "BlaBlaBla (Link)->http://www.google.com id vel lorem.";
string find = @"\((.*?)\)->(http://\S+)";
string replace = @"<a href=""$2"">$1</a>";
string b = Regex.Replace(a, find, replace);


lg,
ferby
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Regex.Matches mit zwei Variablen

  Alt 25. Apr 2013, 13:33
Wenn dein Match sich dadurch definiert dass du :
  • ein Wort in Klammern,
  • gefolgt von einem Pfeil
  • und danach irgendwas bis zum nächsten whitespace/Ende
  • Aber das letzte non alpha-numerische Zeichen wollen wir auch nicht
Mit all dem als Requirement ist die Regex sehr einfach:
Code:
var a = "BlaBlaBla (Link)->http://www.google.com id vel lorem. (Trööt)->http://miepi.mööp. mpwef";
var b = Regex.Replace(a, @"\(([^\)]*)\)-\>\s*([^\s]+(?<!\W))", "<a href=\"$2\">$1</a>");
Console.WriteLine (b);
Zitat:
BlaBlaBla <a href="http://www.google.com">Link</a> id vel lorem. <a href="http://miepi.mööp">Trööt</a>. mpwef
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


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 hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz