Splitting strings in Python using specific characters

后端 未结 3 702
暗喜
暗喜 2021-01-06 10:52

I\'m trying to split an inputted document at specific characters. I need to split them at [ and ] but I\'m having a difficult time figuring this out.

def mai         


        
相关标签:
3条回答
  • 2021-01-06 11:20

    str.split() splits at the exact string you pass to it, not at any of its characters. Passing "[]" would split at occurrences of [], but not at individual brackets. Possible solutions are

    1. splitting twice:

      words = [z for y in x.split("[") for z in y.split("]")]
      
    2. using re.split().

    0 讨论(0)
  • 2021-01-06 11:32

    You could try using re.split() instead:

    >>> import re
    >>> re.split(r"[\[\]]", "I need to [go out] to lunch")
    ['I need to ', 'go out', ' to lunch']
    

    The odd-looking regular expression [\[\]] is a character class that means split on either [ or ]. The internal \[ and \] must be backslash-escaped because they use the same characters as the [ and ] to surround the character class.

    0 讨论(0)
  • 2021-01-06 11:33

    string.split(s), the one you are using, treats the entire content of 's' as a separator. In other words, you input should've looked like "[]'I need to []go out[] to lunch', 'and eat []some food[].'[]" for it to give you the results you want.

    You need to use split(s) from the re module, which will treat s as a regex

    import re
    
    def main():
    for x in docread:
        words = re.split('[]', x)
        for word in words:
            doclist.append(word)
    
    0 讨论(0)
提交回复
热议问题