代码之家  ›  专栏  ›  技术社区  ›  MorganFreeFarm Nevermind23

Python被多个分隔符分割,包括空格?

  •  0
  • MorganFreeFarm Nevermind23  · 技术社区  · 6 年前

    输入:

    Some Text here: Java, PHP, JS, HTML 5, CSS, Web, C#, SQL, databases, AJAX, etc.
    

    代码:

    import re
    
    input_words = list(re.split('\s+', input()))
    print(input_words)
    

    完美地工作并回报我:

    ['Some', 'Text', 'here:', 'Java,', 'PHP,', 'JS,', 'HTML', '5,', 'CSS,', 'Web,', 'C#,', 'SQL,', 'databases,', 'AJAX,', 'etc.']
    

    但当添加一些其他分隔符时,如下所示:

    import re
    
    input_words = list(re.split('\s+ , ; : . ! ( ) " \' \ / [ ] ', input()))
    print(input_words)
    

    它不再被空间分割了,我错在哪里?

    预期的产出将是:

    ['Some', 'Text', 'here', 'Java', 'PHP', 'JS', 'HTML', '5', 'CSS', 'Web', 'C#', 'SQL', 'databases', 'AJAX', 'etc']
    
    0 回复  |  直到 6 年前
        1
  •  6
  •   Tim Biegeleisen    6 年前

    你应该在正则表达式上拆分 交替 包含所有这些符号:

    input_words = re.split('[\s,;:.!()"\'\\\[\]]', input())
    print(input_words)
    

    input = "A B ; C.D   ! E[F] G"
    input_words = re.split('\s*[,;:.!()"\'\\\[\]]?\s*', input)
    print(input_words)
    

    印刷品:

    ['A', 'B', 'C', 'D', 'E', 'F', 'G']
    
        2
  •  1
  •   Asif    6 年前

    将表达式写在括号内,如下所示。希望能有帮助

    import re
    
    
    
    input_words = list(re.split('[\s+,:.!()]', input()))
    
        3
  •  0
  •   Nagaraju    6 年前

    #!/usr/bin/python3
    import nltk
    
    sentence = """At eight o'clock on Thursday morning
    ... Arthur didn't feel very good."""
    words = nltk.tokenize.word_tokenize(sentence)
    print(words)
    

    输出: