Python中的正则表达式在以大写字母开头的单词之间放置空格
给定一个字符数组,它基本上是一个句子。但是,不同的单词之间没有空格,并且每个单词的第一个字母都是大写的。您需要在以下修改后打印这句话:
- 在这些词之间放置一个空格。
- 将大写字母转换为小写字母。
例子:
Input : BruceWayneIsBatman
Output : bruce wayne is batman
Input : GeeksForGeeks
Output : geeks for geeks
对于这个问题,我们有一个现有的解决方案,请参考在以大写字母开头的单词之间放置空格链接。
我们可以使用 re (regex) 库的 findall() 方法在Python中快速解决这个问题。
方法 :
- 使用re.findall(expression, str)方法拆分以大写字母开头的每个单词。
- 现在将每个单词的大写字母更改为小写,并用空格连接每个单词。
Python3
import re
def putSpace(input):
# regex [A-Z][a-z]* means any string starting
# with capital character followed by many
# lowercase letters
words = re.findall('[A-Z][a-z]*', input)
# Change first letter of each word into lower
# case
for i in range(0,len(words)):
words[i]=words[i][0].lower()+words[i][1:]
print(' '.join(words))
# Driver program
if __name__ == "__main__":
input = 'BruceWayneIsBatman'
putSpace(input)
输出:
bruce wayne is batman