【问题标题】:Split string/output into sentences ('.', '?', '!' only) and print only first sentence将字符串/输出拆分成句子('.'、'?'、'!' only)并且只打印第一句
【发布时间】:2021-02-10 23:02:17
【问题描述】:

我正在尝试将(可变)输出 restext 拆分为单独的句子(本练习的分隔符是 '.'、'?' 和 '!'),并且只打印第一句(即输出 @987654322 @,查找第一次出现的 '.'、'?' 或 '!' 并打印第一个完整的句子)。 不使用外部库

我试过了

printtext = restext.replace('?',' ').replace('!',' ').replace('.',' ').split()
print(printtext);

例如:

restext = "Hello my dear! How have you been? I was wondering how you are. Do let me know how you are!"

我会得到

[Hello, my, dear, How, have, you, been, I, was, wondering, how, you, are, Do, let, me, know, how, you, are]

但我正在寻找

"Hello my dear!"

【问题讨论】:

    标签: python


    【解决方案1】:

    实现此目的的一种方法是将每个句子的结尾字符替换为其本身加上另一个不会出现在文本中的字符,例如#。然后您可以拆分该字符以获取单个句子:

    restext = "Hello my dear! How have you been? I was wondering how you are. Do let me know how you are!"
    sentences = restext.replace('?','?#').replace('!','!#').replace('.','.#').split('#')
    printtext = sentences[0]
    print(printtext)
    

    输出:

    Hello my dear!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多