Wie kann ich eine Python-Regex definieren, die mit allen Strings übereinstimmt, die mit doppelten Anführungszeichen beginnen ("
), alle druckbaren Zeichen enthalten (ASCII 32-126) und mit doppelten Anführungszeichen enden ("
)?Python-Regex für zitierte druckbare Zeichen
Antwort
Um Ihre Frage zu beantworten:
dies für abc
genau das zu tun, können Sie einen regulären Ausdruck schreiben müßten, der sagt: „mit "
beginnen, dann was auch immer, schließlich a
, dann was auch immer, schließlich b
, dann was auch immer, schließlich c
, dann was auch immer und schließlich "
oder b
, dann was auch immer, schließlich a
, dann was auch immer, schließlich c
, dann was auch immer ... "- und so weiter, für alle 3! = 6
Permutationen.
# declarative
regex = '^".*(a.*b.*c|a.*c.*b|b.*a.*c|b.*c.*a|c.*a.*b|c.*b.*a).*"$'
# generative
import itertools
regex = '^".*('
regex += '|'.join('.*'.join(p) for p in itertools.permutations('abc'))
regex += ').*"$'
Wenn Sie jedoch versuchen, dass für alle druckbaren Zeichen zu tun, werden Sie wahrscheinlich über genügend Arbeitsspeicher ausgeführt, wie es (126-32)! = 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
Permutationen. So ...
Ihr Problem zu lösen:
printables = {chr(i) for i in range(32, 127)}
def f(s):
return s.startswith('"') and s.endswith('"') and printables < set(s)
Danke Dan! Das ist besser als Regex! – Jim
- 1. Unterstützt TCP nicht druckbare Zeichen?
- 2. interaktiv eingeben nicht druckbare Zeichen
- 3. Warum entfernt Application.Clean() druckbare Zeichen?
- 4. Regex nicht druckbare Zeichen plus Währungssymbole
- 5. Nicht-druckbare Zeichen in JavaScript erkennen
- 6. zufällige druckbare ASCII-Zeichen in c
- 7. Erstelle niederwertige nicht druckbare Zeichen aus XLST
- 8. Möglichkeit, nicht druckbare Zeichen in Zeichenketten anzuzeigen
- 9. Teradata Fehler 6706 Laden nicht druckbare Zeichen
- 10. Anzeige nicht druckbare Zeichen in HTML-Textbereich
- 11. Nicht druckbare Zeichen mit Python trimmen
- 12. Lese nicht-druckbare Zeichen aus einer Datei
- 13. druckbare Char in Java
- 14. Ermitteln druckbare Tasten
- 15. Definieren einer konstanten Zeichenfolge enthält nicht druckbare Zeichen in C
- 16. Wie nicht druckbare/unsichtbare Zeichen in Ruby zu entfernen?
- 17. Nicht druckbare Zeichen als Fullstop in Java drucken
- 18. Warum können nicht druckbare ASCII-Zeichen tatsächlich gedruckt werden?
- 19. druckbare Zeichen zu Bildschirm ASM im geschützten Modus
- 20. Nicht druckbare Zeichen aus einem String in Python entfernen?
- 21. Entfernen Sie nicht druckbare Zeichen aus Bash-Variable
- 22. Wie kann man nicht druckbare Ascii-Zeichen anzeigen?
- 23. PHP: Entfernen Sie nicht druckbare Zeichen, ohne Leerraum zu entfernen
- 24. PHP konvertieren doppelt zitierte Zeichenfolge in einzelne zitierte Zeichenfolge
- 25. dplyr: Standardauswertung für mutieren mit zitierte Variablennamen
- 26. Regex für falsch zitierte CSV-Datei
- 27. So erhalten Sie eine zitierbare druckbare Zeichenfolge in Golang
- 28. Eine zitierte Variable ausschreiben
- 29. Jenkins Doppel zitierte
- 30. Java muss Regex nur englische Zeichen sein. Anzahl und druckbare Zeichen
Zur Klarstellung wollten Sie Vorkommen von Zeichenketten finden, die ** muss ** alle druckbaren Zeichen enthalten, oder ** können ** enthalten alle druckbaren Zeichen? Wie wäre es auch mit einer Situation wie dieser: * Der "schnelle" braune Fuchs "sprang" über den faulen Hund. *? Sollte die Regex "schnell" und "humped" oder "schnell" Braunfuchs "gesprungen" sein (wobei ˽ einen Platz zum Lesen bezeichnet)? – CJK
Sorry, ich meine vielleicht enthalten. In diesem Fall ist die zu erkennende Zeichenfolge "quick" und "juped" – Jim
Wenn "all" eine falsche Beschreibung des Problems ist und stattdessen * only *, dann ist es das einfache '^" [- ~] + "$ '. – usr2564301