Ich versuche, einen regulären Ausdruck zu verwenden, um einen Teil einer Zeichenfolge zu finden und alles bis zu dieser Zeichenfolge auszuwählen. Also zum Beispiel, wenn meine Zeichenfolge this/is/just.some/test.txt/some/other
ist, möchte ich nach .txt
suchen und wenn ich es finde alles vor und bis zu .txt
auswählen.Regulärer Ausdruck, um alles vor und bis zu einem bestimmten Text auszuwählen
Antwort
Nach dem Ausführen der folgenden Regex ist Ihre Antwort in der ersten Erfassung.
/^(.*?)\.txt/
Nett, schlag mich auf den Schlag. Beachten Sie, dass Sie je nach verwendeter Regex-Engine das Wrapping nicht benötigen '/' – vroomfondel
Ja, guter Punkt. Ich bin in Vim, Ruby oder JS 24/7, und ich vergesse immer das>.
Das passt alles bis zu ".txt" (ohne es zu einschließlich):
^.*(?=(\.txt))
+1 für die positive Lookahead Assertion mit einer Breite von Null. Nicht, dass es in diesem Fall wirklich einen großen Unterschied macht. –
Lass uns sagen, dass du das http://url.com/users/2 in http://url.com/users/2/some/stuff/after willst, wie schließt du auch den Matcher ein? – Ben
Funktioniert nicht aus 2 Gründen: Du entkommst nicht dem '.', und dein'. * 'Ist gierig. Was ist mit Abctxt? (abc, statt keine Übereinstimmung) und abc.txt.txt? (abc.txt, statt abc) – vroomfondel
+1, das ist eigentlich besser als meine Antwort, da ich das '^' in meiner Regex nicht brauchte (war überflüssig). – kikuchiyo
Bis einschließlich txt
müssten Sie Ihre r ändern egex like so:
- 1. Regulärer Ausdruck für Briefe vor oder nach einem bestimmten Buchstaben
- 2. Regulärer Ausdruck, um Text zwischen Tags zu löschen
- 3. Regulärer Ausdruck, um alles nach dem letzten zu sammeln/
- 4. Regulärer Ausdruck, der alles außer einem gegebenen regulären Ausdruck entspricht
- 5. Python regulärer Ausdruck entspricht alles
- 6. Regulärer Ausdruck, um einen Satz mit bestimmter Länge auszuwählen
- 7. Regulärer Ausdruck - jeder Text zu URL freundlich
- 8. RegEx, um alles zwischen zwei Zeichen auszuwählen?
- 9. Mod Rewrite - Regulärer Ausdruck, um alles außer Schrägstrich einzubeziehen
- 10. REGEX: Ergreifung alles bis zu einem bestimmten Wort
- 11. Regulärer Ausdruck Literal-Text-Bereich
- 12. Regulärer Ausdruck, um Räume zu finden
- 13. Regulärer Ausdruck um Dollarbeträge zu vergleichen
- 14. Regulärer Ausdruck, um ausgewählte Spalten zu erhalten
- 15. Regulärer Ausdruck alles passen, außer HTML-Tags
- 16. Regulärer Ausdruck "UND"
- 17. Regulärer Ausdruck, um Sozialversicherungsnummer
- 18. Python regulärer Ausdruck alles, aber bestimmte Worte zu ersetzen
- 19. Python regulärer Ausdruck, um Absätze zu trennen
- 20. Regex, das alles vor einem bestimmten Zeichen entspricht?
- 21. Ein regulärer Ausdruck, um XML zu bereinigen
- 22. Wie verwenden Sie reguläre Ausdrücke, um alles vor einem bestimmten Worttyp zu finden
- 23. Regulärer Ausdruck, um den letzten Doppelpunkt in String und alles danach zu bekommen
- 24. Regulärer Ausdruck, um Neuseeland-Telefonnummern zu validieren
- 25. regulärer Ausdruck, um vollständige Übereinstimmung zu vermeiden
- 26. Regex, um alles außer Zahlen und einem Dezimalpunkt zu ersetzen
- 27. Regulärer Ausdruck, um nur Buchstaben zu entsprechen
- 28. Regulärer Ausdruck, um eine Zeile mit bestimmten Zeichen zu finden und diese Zeile zu entfernen
- 29. Regulärer Ausdruck
- 30. Negieren regulärer Ausdruck RE2
Mit "alles vor und bis zu. txt" auswählen, meintest du "alles vor und einschließlich .txt" auswählen? Wenn ja, sind die Antworten bisher falsch. Ansonsten sind "vorher" und "bis zu" überflüssig. –
@Jim L - Ich würde sagen er meint bis zum Ende von .txt, nicht bis zum Anfang von .txt – pguardiario
Was könnte die Lösung sein um nur das komplette Wort vor .txt zu erfassen? In diesem Fall "Test". –