Best way to strip punctuation from a string

前端 未结 26 1815
日久生厌
日久生厌 2020-11-21 05:39

It seems like there should be a simpler way than:

import string
s = \"string. With. Punctuation?\" # Sample string 
out = s.translate(string.maketrans(\"\",\         


        
相关标签:
26条回答
  • 2020-11-21 06:16

    Here's a solution without regex.

    import string
    
    input_text = "!where??and!!or$$then:)"
    punctuation_replacer = string.maketrans(string.punctuation, ' '*len(string.punctuation))    
    print ' '.join(input_text.translate(punctuation_replacer).split()).strip()
    
    Output>> where and or then
    
    • Replaces the punctuations with spaces
    • Replace multiple spaces in between words with a single space
    • Remove the trailing spaces, if any with strip()
    0 讨论(0)
  • 2020-11-21 06:16

    I like to use a function like this:

    def scrub(abc):
        while abc[-1] is in list(string.punctuation):
            abc=abc[:-1]
        while abc[0] is in list(string.punctuation):
            abc=abc[1:]
        return abc
    
    0 讨论(0)
提交回复
热议问题