我正在对字符串进行按摩,以使字符串的第一个字母和破折号或斜杠后的第一个字母大写。
所以下面的字符串:
测试/字符串-这是一个测试字符串
应该看起来像这样:
测试/字符串-这是一个测试字符串
因此,在尝试解决此问题时,我的第一个想法似乎是个坏主意-迭代字符串并检查每个字符并使用索引等。确定字符是否跟随破折号或斜杠(如果确实将其设置为上划线并写出给我)新字符串。
def correct_sentence_case(test_phrase):
corrected_test_phrase = ''
firstLetter = True
for char in test_phrase:
if firstLetter:
corrected_test_phrase += char.upper()
firstLetter = False
#elif char == '/':
else:
corrected_test_phrase += char
这似乎非常不合逻辑。什么是处理此问题的Python方法?
遵循以下内容的内容非常棒,但我不能同时使用破折号和斜杠:
corrected_test_phrase = ' - '.join(i.capitalize() for i in test_phrase.split(' - '))
这是我得到的:
任何帮助将不胜感激 :)
我能够使用正则表达式完成所需的转换:
import re
capitalized = re.sub(
'(^|[-/])\s*([A-Za-z])', lambda match: match[0].upper(), phrase)
该表达式表示“在与字符串开头^
、、破折号或斜杠,后跟一些空格和一个单词字符的任何位置匹配,请用大写字母替换单词字符。”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句