Ich arbeite an einem "Wiki-Spiel" mit PHP, und ich möchte alle Links in einer Zeichenfolge beginnend mit /wiki/something
, zum Beispiel /wiki/Chiffrement_RSA
oder /wiki/OSS_117_:_Le_Caire,_nid_d%27espions
. Ich kenne nur ein paar Sachen über REGEX, also bin ich struct. Wenn mir jemand helfen könnte, wäre es nett. Für die Zeit habe ich nur \/wiki\/*
... Danke für Ihre Hilfe!Auswählen bestimmter Links mit einem REGEX
Antwort
Ich wählte Antwort des Cody.code schließlich mit dieser Regex: \/wiki\/([^ ]+)
. Ich werde diesen Code verwenden, um zu überprüfen, ob ich einen Link in einem Array halte oder nicht (ich werde meine HTML mit DOMDocument analysieren und alle <a>
bekommen, es ist schneller), also ist die preg_match()
Lösung die beste für mich, statt strpos. Danke für Ihre Hilfe!
Sie können regex oder strpos tun:
<?php
$mystring = 'abc';
$find = '/wiki/';
$statusLink = strpos($mystring, $find);
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($statusLink === false) {
echo "Not the link that you want";
} else {
echo "You found the link";
}
//or by explode
$link = explode('/', $originalLink);
if ($link[1] == 'wiki' && isset($link[2])){
//is your link
}
?>
Sie können die Größe Ihres Ausgangsarrays um 50% reduzieren, indem Sie \K
in Ihrem Muster verwenden. Es eliminiert die Notwendigkeit einer Erfassungsgruppe und fügt die gewünschten Teilzeichenfolgen in das Array "fullstrings" ein.
Muster:
\/wiki\/\K[^ ]+
\K
sagt "das fullstring Spiel starten von hier". Dies bedeutet keine Speicherverschwendung. Es mag eine Mikroverbesserung sein, aber ich glaube, es ist die beste Praxis, und ich denke, mehr Menschen sollten es nutzen.
- 1. Auswählen bestimmter Werte in einem Diagramm
- 2. Auswählen bestimmter Fertig
- 3. Regex mit Ausnahme bestimmter Wörter
- 4. Extrahieren bestimmter Werte von einem Perl-Regex
- 5. Kopieren bestimmter ausgehender Links
- 6. Regex finden Sie Links
- 7. Auswählen bestimmter Felder in MongooseJs
- 8. Auswählen bestimmter Eigenschaften von Modell
- 9. Regex Entfernen bestimmter Zeilenumbrüche (Python)
- 10. ID-Elemente mit Regex auswählen
- 11. Auswählen aller Links
- 12. Auswählen bestimmter Features aus einem Dataset gemäß einer Liste.
- 13. Regex zum Zurückweisen bestimmter Werte
- 14. Machen Sie Links anklickbar mit Regex
- 15. jQuery alle Elemente innerhalb bestimmter Elternelemente auswählen
- 16. Auswählen bestimmter zeitbasierter Daten in mySql
- 17. REGEX: Wie finde ich bestimmte Links über Regex
- 18. Regex - Übereinstimmung bestimmter Zeichen nach einem gegebenen Muster
- 19. Auswählen bestimmter JSON-Antworteinträge in Python 3
- 20. CorelDraw Auswählen bestimmter Formen in einer Sammlung
- 21. Suchen und Auswählen bestimmter Paketversionen mit Nuget Package Manager
- 22. PHP Regex zur Identifizierung bestimmter URL-Muster
- 23. Validate bestimmter Bereich unter Verwendung von Regex
- 24. Entfernen bestimmter Tags mit Regex, während Inhalt beibehalten
- 25. Regex zu lokalen Markdown-Links
- 26. RegEx-Muster zum Ausschließen von Dateinamen mit bestimmter Zeichenfolge
- 27. Unescaped links Brace Regex Fehler
- 28. Regex zum Ausschließen bestimmter Websites in Javascript?
- 29. Regex mit Ausnahme von Wörtern in bestimmter Reihenfolge
- 30. Regex zum Filtern bestimmter URL mit mehreren Keywords
Ich würde empfehlen, die strpos wie unten beschrieben zu verwenden. Aber wenn Sie eine Regex verwenden wollen, fängt dies alles bis zum ersten Leerzeichen ab, dann funktioniert \/wiki \/([^] +). Wenn Sie Regex testen möchten, versuchen Sie http://regexr.com –