当前位置: 首页 > 知识库问答 >
问题:

用多个字符拆分句子,并在每个句子的末尾将它们连接起来

宋康安
2023-03-14

我有一个包含1000个句子的文本文件。我从“.”中拆分了句子,但这些句子中也有“?”和“!”。我也需要拆分它们,并在这些句子的末尾加入这些字符。例如:text=“我有一个朋友。我有很多朋友!我今天很开心。你开心吗?我希望你是。”输出:

I have a friend.
I have many friends!
I am very happy today.
Are you happy?
I wish you were.

我尝试过的代码是

textsentences = text.split('.')
I have tried this code.
with open("file.txt",'w') as writefile:
    for line in textsentences:
        line = line.strip()
        writefile.write("%s . \n" % line)

它仅适用于一个字符。

共有1个答案

阮轶
2023-03-14

这应该行得通。line_start变量是为了避免句子开头不必要的空格:

text = "I have a friend. I have many friends! I am very happy today. Are you happy? I wish you were."
line_start = False
with open("file.txt", 'w') as writefile:
    for i in range(len(text)):
        if text[i].isalnum() or text[i] == ' ':
            if line_start == True and text[i] == ' ':
                line_start = False
                continue
            writefile.write(text[i])
        else:
            writefile.write(text[i] +'\n')
            line_start = True

输出 : 文件.txt

I have a friend.
I have many friends!
I am very happy today.
Are you happy?
I wish you were.
 类似资料:
  • 我是Java初学者,目前正在寻找一种基于分隔符(.)将String拆分为子字符串的方法。理想情况下,我有一个句子,然后我想用HTML标记包装每个句子,即<code> 我使用类尝试了以下操作: 这给了一句话。我被困在这里,我也想把每个数字包装成一个句子。 我的字符串包含类似于: 输出应该是: 有可能实现这一点吗?

  • 问题内容: 我已经编写了这段代码,用于拆分字符串并将其存储在字符串数组中:- 但是,我添加了[az],因为我想处理一些缩写问题。但是随后我的结果显示为: 此外,当埃弗里特(Everett)试图指导他们进行基础数学训练时,他们被证明是毫无反应的 我看到丢失了split函数中指定的模式。对我来说,可以省略句号,但是丢失单词的最后一个字母会打乱其含义。 有人可以帮助我吗?此外,有人可以帮助我解决缩写吗?

  • 问题内容: 例如: 字符串s =“ this是a.line是.over” 应该出来 “这是行结束。” 我想到两次使用字符串标记器 现在我不确定如何使用字符串标记器的输出作为另一个的输入? 我也可以使用split方法生成数组我尝试过的东西 问题答案: 使用StringBuilder,无需拆分和创建其他字符串,依此类推,请参见代码

  • 本文向大家介绍使用MySQL SELECT语句时,在每个值的末尾添加一个百分号(%),包括了使用MySQL SELECT语句时,在每个值的末尾添加一个百分号(%)的使用技巧和注意事项,需要的朋友参考一下 要在末尾添加百分号,请使用函数。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是使用MySQL SELECT语句在末尾

  • 我试图使用javascript的拆分来从字符串中提取句子,但保留分隔符,例如!?。 到目前为止,我已经 它可以工作,但不包括每句话的结尾标点(。!?). 有人知道怎么做吗?

  • 问题内容: 我试图像这样更新我的表: 我可以做一个,但是会发送50多个单独的查询,这非常慢。这就是为什么我希望将其合并为1个大查询。 (我确实为每行使用一个 id ,但是 game_id , x 和 y 的组合才是我用来标识所需行的方法。) 这里描述了来自codeIgniter的update_batch()函数: 使用CodeIgniter更新批处理 是有用的,并且几乎是完美的,但是它仅允许1个单