So parsen Sie eine URL und extrahieren die erforderliche Teilzeichenfolge

7

Angenommen, ich habe eine Zeichenfolge wie diese: "http://something.example.com/directory/"

Was ich tun möchte, ist diese Zeichenfolge zu analysieren und die "something" aus der Zeichenfolge zu extrahieren.

Der erste Schritt besteht darin, zu überprüfen, ob die Zeichenfolge "http://" enthält. Anderenfalls sollte die Zeichenfolge ignoriert werden.

Aber wie extrahiere ich dann einfach die "something" in dieser Zeichenkette? Angenommen, alle Zeichenfolgen, die ausgewertet werden, haben eine ähnliche Struktur (dh ich versuche, die Subdomain der URL zu extrahieren - wenn die zu untersuchende Zeichenfolge tatsächlich eine gültige URL ist - wobei die gültige beginnt mit "http://" ) / p>

Danke.

P.S. Ich weiß, wie man den ersten Teil prüft, d. H. Ich kann die Zeichenkette einfach in "http://" aufteilen, aber das löst nicht das volle Problem, weil dadurch "http://something.example.com/directory/" erzeugt wird. Alles was ich will ist "something" , sonst nichts.

    
marcamillion 06.11.2012, 01:41
quelle

3 Antworten

18

Ich würde es so machen:

%Vor%

URI ist in Ruby integriert. Es ist nicht das vollste Feature, aber es ist in der Lage, diese Aufgabe für die meisten URLs zu erledigen. Wenn Sie IRIs haben, sehen Sie sich Adressierbar :: URI .

    
the Tin Man 06.11.2012, 03:13
quelle
6

Sie könnten URI wie

verwenden %Vor%

und du könntest dann einfach am Host arbeiten.
Oder es gibt ein Juwel domainatrix von Entfernen Subdomain von String in Ruby

%Vor%

und Sie könnten einfach die Subdomain übernehmen.

    
oldergod 06.11.2012 02:39
quelle
2

Nun, Sie können reguläre Ausdrücke verwenden. Etwas wie /http:\/\/([^\.]+)/ , das heißt, die erste Gruppe von nicht '.' Briefe nach http. Schauen Sie sich Ссылка an, Sie können Ihre regulären Ausdrücke auch mit einer Reihe von Tests testen, es ist großartig, um dieses Tool zu lernen:)

    
resilva87 06.11.2012 01:49
quelle

Tags und Links