Python正则表达式:Turn“此文件名.txt“进入”这个文件名称.txt"

2024-09-28 21:03:59 发布

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

我试着在每个大写字母前加一个空格,除了第一个。在

以下是到目前为止,我得到的结果:

>>> tex = "ThisFileName.txt"
>>> re.sub('[A-Z].', ' ', tex)
' his ile ame.txt'

我想要: '这个文件名称.txt'

(如果我也可以删除.txt文件,那就太好了,但我可以在单独的操作中完成。)


Tags: 文件retxt大写字母tex空格hisile
3条回答

这里的关键概念是正则表达式中的反向引用:

import re
text = "ThisFileName.txt"
print re.sub('([a-z])([A-Z])', r'\1 \2', text)
# Prints: "This File Name.txt"

为了可靠地使用“.txt”,我建议os.path.splitext()

^{pr2}$
re.sub('([a-z])([A-Z])', '\\1 \\2', 'TheFileName.txt')

编辑:StackOverflow在不处于“代码模式”时会吃掉一些\s。。。因为我忘了在上面的代码后面加一个新行,所以它在'code mode':-(。因为我在这里添加了文本,所以我不需要更改任何内容,现在它是正确的。在

另一个可能使用look-behind的正则表达式:

(?<!^)([A-Z])

相关问题 更多 >