2024-06-16 10:31:58 发布
网友
我需要对文本文件中的每一行执行此操作,然后将其写入另一个文件。我需要删除第一个空格并用逗号(,)替换它。在
,
但是,我不希望这发生在任何其他空格上。以下是输入文本文件的片段:
Achilles Patroclus Achilles Triumph of Achilles in Corfu Achilleion Achilles Antilochus Achilles Hephaestus Achilles Shield of Achilles
我不是一个python程序员,但我会从regex的角度为解决方案做出贡献。在
你要做的是识别第一个单词,在它后面加上空格。下面的regex就可以做到这一点。在
正则表达式:(^\b\w*\b)(\s)
(^\b\w*\b)(\s)
使用的标志:
g用于全局搜索。
g
m用于多行搜索。
m
说明:
(^\b\w*\b)将捕获行的第一个单词。
(^\b\w*\b)
(\s)将捕获第一个单词后的空白。您也可以选择非捕获组,方法是在其中使用?:,这样它就变成了(?:\s),或者干脆不捕捉它。
(\s)
?:
(?:\s)
要做的替换:
\1,
whitespace
Regex101 Demo
你可以这样做:
[",".join(line.split(" ", 1)) for line in lines]
将re.sub与^([^\s]*)\s+一起使用:
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'
我不是一个python程序员,但我会从regex的角度为解决方案做出贡献。在
你要做的是识别第一个单词,在它后面加上空格。下面的regex就可以做到这一点。在
正则表达式:
(^\b\w*\b)(\s)
使用的标志:
g
用于全局搜索。m
用于多行搜索。说明:
(^\b\w*\b)
将捕获行的第一个单词。(\s)
将捕获第一个单词后的空白。您也可以选择非捕获组,方法是在其中使用?:
,这样它就变成了(?:\s)
,或者干脆不捕捉它。要做的替换:
\1,
。这将使第一个捕获的组保持原样,,
而不是whitespace
Regex101 Demo
你可以这样做:
将
re.sub
与^([^\s]*)\s+
一起使用:相关问题 更多 >
编程相关推荐