用逗号替换每行的第一个空格

2024-06-16 10:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要对文本文件中的每一行执行此操作,然后将其写入另一个文件。我需要删除第一个空格并用逗号(,)替换它。在

但是,我不希望这发生在任何其他空格上。以下是输入文本文件的片段:

Achilles Patroclus
Achilles Triumph of Achilles in Corfu Achilleion
Achilles Antilochus
Achilles Hephaestus
Achilles Shield of Achilles

Tags: 文件ofinshield空格逗号文本文件achilles
3条回答

我不是一个python程序员,但我会从regex的角度为解决方案做出贡献。在

你要做的是识别第一个单词,在它后面加上空格。下面的regex就可以做到这一点。在

正则表达式:(^\b\w*\b)(\s)

使用的标志:

  • g用于全局搜索。

  • m用于多行搜索。

说明:

  • (^\b\w*\b)将捕获行的第一个单词。

  • (\s)将捕获第一个单词后的空白。您也可以选择非捕获组,方法是在其中使用?:,这样它就变成了(?:\s),或者干脆不捕捉它。

要做的替换:

  • 将匹配的内容替换为\1,。这将使第一个捕获的组保持原样,,而不是whitespace

Regex101 Demo

你可以这样做:

[",".join(line.split(" ", 1)) for line in lines]

re.sub^([^\s]*)\s+一起使用:

>>> s
'Achilles Triumph of Achilles in Corfu Achilleion'

>>> re.sub(r'^([^\s]*)\s+', r'\1, ', s)
'Achilles, Triumph of Achilles in Corfu Achilleion'

相关问题 更多 >