在一系列已知或未知的字母序列之后替换或引入空格然后在换行内容上写入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一系列已知或未知的字母序列之后替换或引入空格然后在换行内容上写入相关的知识,希望对你有一定的参考价值。

问题是我现在有一个字符串,其中一些单词粘在一起:

fooledDog和我需要被欺骗的D ****字符串文本继续插入“”whateveredJ我需要whatevered J *******字符串文本继续插入“”

string = string.replace("edD","ed D")
string = string.replace("edJ","ed J")

但我需要代替“D”和“J”来拥有任何可能的字符,以避免硬编码值,以便代码可以在此位置使用任何字母或数字。

答案

使用正则表达式解决这个问题非常容易(即使正则表达式是工作的最佳工具,也不是总是如此)。试试这个:

import re

text = "fooledDog whateveredJob"
fixed_text = re.sub(r'ed([A-Z])', r'ed \1', text)
print(fixed_text) # prints "fooled Dog whatevered Job"

该模式以小写形式查找字母'ed',后跟任何大写字母(被捕获)。替换是'ed'和一个空格,然后是捕获组的大写字母。

另一答案

我不完全理解你的问题,但似乎你有一些想要分开的camelCase词。如果是这种情况,试试这个:

import re

name = 'CamelCaseTest123'
splitted = re.sub('(?!^)([A-Z][a-z]+)', r' \1', name).split()

输出:

['Camel', 'Case', 'Test123']

以上是关于在一系列已知或未知的字母序列之后替换或引入空格然后在换行内容上写入的主要内容,如果未能解决你的问题,请参考以下文章

来自 json 的原型反序列化将在新字段或未知枚举值上失败

用破折号替换空格并使所有字母变为小写

如何在一组行之后或有条件地在没有 PL/SQL 块的情况下增加 oracle 序列?

如何在EXCEL中提取中间部分的数字或字母

数学建模MATLAB应用实战系列(八十三)-灰色预测(附MATLAB代码)

如何用空格匹配、计数和替换字符串,但它们不是另一个字母字符串的子字符串?