在python中不将链接大写而将文本大写

2024-04-24 06:20:17 发布

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

我需要将一行输入大写,但是如果我只使用upper()函数,链接地址就会大写,从而使它们不可用。你知道吗

例如:“酷视频www.youtube.com/watch?v=dQw4w9WgXcQ“

将转到:“酷视频WWW.YOUTUBE.COM/WATCH?V=DQW4W9WGXCQ“

链接地址已更改,不再工作。有没有办法忽略链接?你知道吗


Tags: 函数com视频youtube链接地址wwwupper
1条回答
网友
1楼 · 发布于 2024-04-24 06:20:17

如果我在这里正确地理解了您的目标,那么您应该首先查找字符串的upper大小写部分,然后与原始字符串的其余部分重新连接,如下所示:

>>> import re
>>> s = "Cool Video -> www.youtube.com/watch?v=dQw4w9WgXcQ"
>>> #Look for the part of string you want to upper case
>>> m = re.search(r'^.*(?=\s+->)', s)
>>> m
<_sre.SRE_Match object; span=(0, 10), match='Cool Video'>
>>> #m.start() and m.end() will give you start and endo position of matched string.
>>> new_s = s[m.start():m.end()].upper() + s[m.end():]
>>> #remember that strings are immutable, so make new one
>>> new_s
'COOL VIDEO -> www.youtube.com/watch?v=dQw4w9WgXcQ'
>>> #OR
>>> new_s = m.group().upper() + s[m.end():]
>>> new_s
'COOL VIDEO -> www.youtube.com/watch?v=dQw4w9WgXcQ'

编辑:

另一种方法是查找链接前面的字符串,然后对其应用upper方法:

>>> s = "Cool Video www.youtube.com/watch?v=dQw4w9WgXcQ"
>>> m = re.search(r'(.*)(?=www.*)',s)
>>> s = m.group().upper() + s[m.end():]
>>> s
'COOL VIDEO www.youtube.com/watch?v=dQw4w9WgXcQ'

相关问题 更多 >