Devo usare regex per rimuovere la punteggiatura allo start e fine di una parola. Sembra che regex sia l'opzione migliore per questo. Non voglio la punteggiatura rimossa da parole come "tu sei", ed è per questo che non sto usando .replace(). Grazie in anticipo =)punteggiatura di strip con regex - python
risposta
Non è necessaria un'espressione regolare per eseguire questa operazione. Utilizzare str.strip
con string.punctuation
:
>>> import string
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>[email protected][\\]^_`{|}~'
>>> '!Hello.'.strip(string.punctuation)
'Hello'
>>> ' '.join(word.strip(string.punctuation) for word in "Hello, world. I'm a boy, you're a girl.".split())
"Hello world I'm a boy you're a girl"
Solo per curiosità, quale sarebbe il metodo regex per questo? –
're.sub ('\ S +', lambda m: re.sub ('^ \ W + | \ W + $', '', m.gruppo()), '...')'. NOTA: è necessario sostituire '\ W' per essere precisi perché esclude' _' (se si tratti '_' come carattere di punteggiatura). DEMO: http://ideone.com/Ti44Bw – falsetru
Grande! Molte grazie! A proposito, è equivalente al tuo - 're.sub ('\ S +', lambda m: re.match (r '^ \ W * (. * \ W) \ W * $', m.group ()). gruppo (1), testo) '? Se sì, quale di questi è più veloce (o comunque migliore)? [Demo] (http://ideone.com/EDan4X) –
- 1. Regex: strip non alfa numerico o punteggiatura
- 2. strip a verbose python regex
- 3. Python strip con \ n
- 4. Elixir sostituzione punteggiatura regex
- 5. punteggiatura Regex in Java
- 6. Python strip() più caratteri?
- 7. Regex: Strip attributi HTML eccetto SRC
- 8. Spazi strip/tabs/newline - python
- 9. Regex: corrisponde a qualsiasi carattere di punteggiatura tranne. e _
- 10. Python: sostituire con regex
- 11. Regex usando js per strip js da html
- 12. Regex - Strip non numerico e rimuovere eventuali centesimi
- 13. regex a strip zeri iniziali trattati come stringa
- 14. Url di reindirizzamento strip
- 15. Python/Regex - Match. #, #. in Stringa
- 16. Come rimuovere la punteggiatura?
- 17. Corrispondenza singola parola, con possibile punteggiatura o pluralizzazione alla fine (Regex)
- 18. Right Strip Vowels
- 19. Python 2: AttributeError: l'oggetto 'list' non ha attributo 'strip'
- 20. Discordanza standard Regex vs python regex
- 21. Python RegEx utilizzando re.sub con più pattern
- 22. Bug in Python Regex? (re.sub con re.MULTILINE)
- 23. python regex con emissione unicode (giapponese) personaggio
- 24. Python regex compilare (con re.VERBOSE) non funziona
- 25. Analisi XML in Python con regex
- 26. Python Regex per parole con trattino
- 27. Python regex string matching?
- 28. Togliere tutta la punteggiatura dalla fine di una stringa
- 29. Python regex - abbinamenti estranee
- 30. python multiline regex
Per chi viene qui in cerca di un modo per distinguere tra caratteri alfanumerici Unicode e tutto il resto, durante l'utilizzo di Python 3.x, si può semplicemente utilizzare \ w \ W nella vostra espressione regolare. Questo mi ha aiutato a codificare la funzionalità Control-Shift-Left/Right in un widget di testo Tkinter (per ignorare tutte le cose come la punteggiatura prima di una parola). Ho trovato il tuo post prima di trovare questa soluzione. Quindi, immagino che possa aiutare qualcuno in una barca simile. – Shule