更改字符串的最简单方法是什么,同时保留空格,将每个大写字母更改为小写除了链接?
所有链接都以' http://'开头。或&& 39; https://'
一个例子是:
HELLO HOW ARE YOU CHECK OUT THIS: http://sOme.Link THIS IS AWESOME
应改为:
hello how are you check out this: http://sOme.Link this is awesome
我试过.lower()当然会弄乱链接。我想过一个字一个字地做,但这会弄乱白色空间。
所以我猜测必须有像'sed'命令但无法找到它。
答案 0 :(得分:1)
words = string.split()
lower_words = []
for word in words:
if word.startswith(('http:','https:')):
lower_words.append(word)
else:
lower_words.append(word.lower())
print ' '.join(lower_words)
答案 1 :(得分:1)
我差点把所有的头发拉出来,但我终于把它弄好了。保留空格的非链接的小写:
string = 'HELLO HOW ARE YOU CHECK OUT THIS: http://sOme.Link THIS IS AWESOME'
i=0
while i < len(string):
try:
end_i = i+string[i:].index(' ')
except ValueError:
end_i = len(string)
if string[i:end_i].startswith(('http:','https:')):
pass
else:
string = string[:i]+string[i:end_i].lower()+string[end_i:]
i = end_i+1
print string
希望你喜欢它。
答案 2 :(得分:0)
对于这个简单的例子,我可以使用正则表达式来进行拆分:
>>> import re
>>> s = "HELLO HOW ARE YOU CHECK OUT THIS: http://sOme.Link THIS IS AWESOME"
>>> parts = re.split("(\s+)", s)
>>> parts
['HELLO', ' ', 'HOW', ' ', 'ARE', ' ', 'YOU', ' ', 'CHECK', ' ', 'OUT', ' ', 'THIS:', ' ', 'http://sOme.Link', ' ', 'THIS', ' ', 'IS', ' ', 'AWESOME']
>>> ''.join(p.lower() if not p.startswith(('http:', 'https')) else p for p in parts)
'hello how are you check out this: http://sOme.Link this is awesome'
或者也许只是在链接上进行另一种方式拆分,但我倾向于用Python编写,而不是尽可能地编写正则表达式。