|
You last visited: Today at 23:22
Advertisement
[Regex] Problem mit Pattern
Discussion on [Regex] Problem mit Pattern within the .NET Languages forum part of the Coders Den category.
02/03/2013, 23:38
|
#1
|
elite*gold: 0
Join Date: Apr 2009
Posts: 1,071
Received Thanks: 164
|
[Regex] Problem mit Pattern
Hallo meine lieben,
habe folgende zwei Probleme
Quote:
Code:
<a class="fbxWelcomeBoxBlock _8o _8s lfloat" href="http://www.facebook.com/johann.goldbaum" aria-hidden="true" tabindex="-1">
|
Dort möchte ich per Regex den Namen : johann.goldbaum Dieser ändert sich natürlich also .* ?
Pattern  im ra As New Regex("<a class=""fbxWelcomeBoxBlock _8o _8s lfloat"" href=""http:\/\/www.facebook.com\/(?<name>([^<]+))")
Funktioniert nicht.
Quote:
|
<script>function envFlush(a){function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){requireLazy(['Env'],b);}else{Env=window.Env||{};b(Env);}}envFlush({"u ser":"100005087773375","locale":"de_DE","method":"GET","svn_rev":727171 ,"tier":"","vip":"31.13.81.7","static_base":"http: \/\/static.ak.fbcdn.net\/","www_base":"http:\/\/www.facebook.com\/","rep_lag":2,"fb_dtsg":"AQD3jfOI","ajaxpipe_token ":"AXhLacnmjuODatTx","lhsh":"mAQE67IRZ","tracking_ domain":"http:\/\/pixel.facebook.com","retry_ajax_on_network_error": "1","fbid_emoticons":"1"});</script>
|
Diese Nutzerid muss auch herausgefiltert werden. Leider komm ich damit überhaupt nicht weiter. Habe mir die Regex Tutorials hier im Forum angeschaut sowie diesen Regex Helper, aber irgendwie komm ich nicht wirklich weiter...
Für eure Hilfe wäre ich sehr dankbar!
|
|
|
02/04/2013, 01:09
|
#2
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
so sollte es gehen, hab grad keine lust nen pattern zu machen 
frei aus der hand:
Code:
dim name as string = split(split(input,"http://www.facebook.com/")(1),"""")(0)
dim id as string = split(split(input,"""user"":""")(1),"""")(0)
|
|
|
02/04/2013, 12:40
|
#3
|
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
|
Quote:
Originally Posted by roteisenklinge
Quote:
|
<a class="fbxWelcomeBoxBlock _8o _8s lfloat" href="http://www.facebook.com/johann.goldbaum" aria-hidden="true" tabindex="-1">
|
Diese Nutzerid muss auch herausgefiltert werden. Leider komm ich damit überhaupt nicht weiter. Habe mir die Regex Tutorials hier im Forum angeschaut sowie diesen Regex Helper, aber irgendwie komm ich nicht wirklich weiter...
Für eure Hilfe wäre ich sehr dankbar!
|
Ist es wichtig, dass du dafür RegEx benutzt?
Visual Basic.Net bietet da nämlich gute Funktionen, um das anderweitig zu lösen..
PHP Code:
Dim Source = "<a class=""fbxWelcomeBoxBlock _8o _8s lfloat"" href=""http://www.facebook.com/johann.goldbaum"" aria-hidden=""true"" tabindex=""-1"">" Dim UserName As String = Split(source, "fbxWelcomeBoxBlock _8o _8s lfloat")(1) UserName = Split(UserName, "facebook.com/")(1) UserName = Split(UserName, """")(0)
Source = "<script>function envFlush(a){function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){requireLazy(['Env'],b);}else{Env=window.Env||{};b(Env);}}envFlush({""user"":""100005087773375"",""locale"":" Dim UserId = Split(Source, "envFlush({""user"":""")(1) UserId = Split(UserId, """")(0)
|
|
|
02/04/2013, 14:24
|
#4
|
elite*gold: 0
Join Date: Apr 2009
Posts: 1,071
Received Thanks: 164
|
Quote:
Originally Posted by Mi4uric3
Ist es wichtig, dass du dafür RegEx benutzt?
Visual Basic.Net bietet da nämlich gute Funktionen, um das anderweitig zu lösen..
PHP Code:
Dim Source = "<a class=""fbxWelcomeBoxBlock _8o _8s lfloat"" href=""http://www.facebook.com/johann.goldbaum"" aria-hidden=""true"" tabindex=""-1"">"
Dim UserName As String = Split(source, "fbxWelcomeBoxBlock _8o _8s lfloat")(1)
UserName = Split(UserName, "facebook.com/")(1)
UserName = Split(UserName, """")(0)
Source = "<script>function envFlush(a){function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){requireLazy(['Env'],b);}else{Env=window.Env||{};b(Env);}}envFlush({""user"":""100005087773375"",""locale"":"
Dim UserId = Split(Source, "envFlush({""user"":""")(1)
UserId = Split(UserId, """")(0)
|
hey,
naja habe bis jetzt immer Regex benutzt, macht der Gewohnheit
Danke
Habs hiermit versucht
Dim lsdPattern As String = ("(?<=<a class=""fbxWelcomeBoxBlock _8o _8s lfloat"" href=""http:\/\/www.facebook.com\/).*?(?="")")
|
|
|
02/12/2013, 15:12
|
#5
|
elite*gold: 50
Join Date: Oct 2005
Posts: 29
Received Thanks: 7
|
Warum RegEx? Warum Split? Was passiert denn wohl wenn sich die CSS Klasse mal ändert?
Um es etwas langlebiger zu gestalten rate ich zu string.Split und string.IndexOf Methoden. Beispielsweise
Code:
string href = "<a class=\"fbxWelcomeBoxBlock _8o _8s lfloat\" href=\"http://www.facebook.com/johann.goldbaum\" aria-hidden=\"true\" tabindex=\"-1\">";
int usernameStartIndex = href.IndexOf(".com/") + 5;
int usernameLength = href.IndexOf('"', usernameStartIndex) - usernameStartIndex;
string username = href.Substring(usernameStartIndex, usernameLength);
Console.WriteLine(username);
Console.ReadLine();
LG
|
|
|
02/12/2013, 17:15
|
#6
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Sind ja alles schöne Workarounds, aber für so einen Fall würde ich mir lieber einen HTML-Parser schnappen.
Damit bekommt man dann schonmal ohne rumhantieren mit irgendwelchen String-Funktionen an folgendes:

Daraus sollte es dann wohl recht einfach sein, den hinteren Teil zu bekommen.
|
|
|
02/12/2013, 17:57
|
#7
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
und was macht ein html parser? genau er nutzt string, funktionen in allen farben in formen
da kann es nicht schaden sowas auch mal er hand zu probieren
ich persöhnlich würde mich bei sowas einfachem und schnellem nie auf fremdkomponeten verlassen
|
|
|
02/12/2013, 18:04
|
#8
|
elite*gold: 50
Join Date: Oct 2005
Posts: 29
Received Thanks: 7
|
Einen HTML Parser für ein Html Anchor zu nutzen halte ich für overkill, zu mal du nicht drum rum kommst string funktionen zu nutzen. Der Html Parser macht nichts anderes. Von daher würde ich eher einen Html Parser eher als Workaround bezeichnen. Das man diese Funktionalität in eine Klasse hüllen kann macht natürlich Sinn, wenn es dir darum gehen sollte.
Ein Html Parser liest Html Code ein und wandelt ihn in Objekte, bzw. befüllt Objekte mit den Informationen zum leichteren Zugriff.
|
|
|
02/12/2013, 18:22
|
#9
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Deswegen wozu das Rad neu erfinden. Das bisschen Overhead sollte hier sicherlich nicht ins Gewicht fallen. Der Flaschenhals ist sowieso der Webrequest.
Quote:
|
da kann es nicht schaden sowas auch mal er hand zu probieren
|
Stimme ich dir schon zu, aber sich auch mal mit einem der gängigen Parser zu befassen, kann auch nicht schaden.
|
|
|
02/12/2013, 21:29
|
#10
|
elite*gold: 50
Join Date: Oct 2005
Posts: 29
Received Thanks: 7
|
Das sehe ich ehrlich gesagt etwas anders, aber jeder soll ja auch seine Art haben.
Ich würde es wohl so lösen wie von mir Vorgeschlagen. Einen HTML Parser zu nutzen ist für mich völliger Overkill. Man darf nicht vergessen, dass man damit auch die Komplette DLL an Board hat.
Das Rad wurde auch nicht neu erfunden. Es macht in meinen Augen wenig Sinn einen kompletten Parser zu benutzen um aus einem so kurzem String eine kleine Information zu holen. Zumal du dennoch mit String Methoden arbeiten müsstest um an die Information zu kommen.
|
|
|
 |
Similar Threads
|
RegEx Pattern
09/23/2012 - General Coding - 2 Replies
Wäre jemand mal so nett mir einen funktionierenden RegEx Pattern zu geben, um das rotmarkierte rauszufilten? Ich kenn mich nicht besonders gut damit aus und bekomms einfach nicht gebacken..
|
Kleines Problem mit RegEx
09/16/2012 - .NET Languages - 4 Replies
Hey Leute ich habe folgenden Code:
System.Text.RegularExpressions.Regex(RichTextBox1. Text, "Ha.*s", RegexOptions.IgnoreCase)
Die Fehlermeldung lautet jetzt: "Regex ist ein Typ in RegularExpressions und kann nicht als Ausdruck verwendet werden."
Könnt ihr mir mal helfen?
Ich glaub ich steh grade voll auf dem Schlauch...
|
[C#]RegEx Problem
11/29/2011 - .NET Languages - 4 Replies
Also ich habe ein Problem, hab ein Patter erstellt:
rf_token: '(\w.*)'
Nach RegexBuddy gibt es 2 Machtes und in der zweitem Match ist richtige Wert.
Aber mit diesem Code bekomme ich Wert nicht wieso wo ist Fehler?
string re1 = "rf_token: '(\\w.*)'"; // Variable Name 1 Regex r = new Regex(re1, RegexOptions.IgnoreCase | RegexOptions.Singleline); Match m = r.Match(Winhttp.Body); String var1 = m.Groups.ToString();
|
Gacha pattern + the problem in GCph forums...
03/17/2011 - Grand Chase Philippines - 38 Replies
gacha pattern tip: but P1000 load release it and when your scrolls goes to 1/2 - 3/4 activate auto-release mode... it may easy to have gacha items... it works...
the problem in GCph forums: why i'm always banned there? is there anything wrong? wla naman akong nilalabag na forum rules eh... iwant to join comic strip contests pero ban na agad ako... why?... is because of flagging?...
why?... need come comments for you guys...
kamsa hamnida...
|
[C#] Problem mit Regex
07/11/2010 - .NET Languages - 2 Replies
Huhu,
Ich hab da ein kleines Problem was ich irgendwie nicht schaffe zu lösen..
Also ich hab folgenden Source:
public List<string> GetHtmlLinks(string html)
{
string linkPattern = "<a href=\"(.*?)\">(.*?)</a>";
MatchCollection linkMatches = Regex.Matches(html, linkPattern, RegexOptions.Singleline);
|
All times are GMT +1. The time now is 23:23.
|
|