如果某个地方有点或破折号这样的分隔符,如何添加str和str?

2024-09-30 00:26:00 发布

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

如何用STR添加STR,如果它在字符串的中间有分隔符这样的点或破折号。切片对这个没有帮助

示例:

a = 'Beautiful. is better5- than ugly'
b = 'UK- Paris- Check Tech2013'

期望值:

a = 'Beautiful.is better5-than ugly'
b = 'UK-Paris-Check Tech2013'

Tags: 字符串示例ischeck切片thanparis分隔符
3条回答

您可以使用正则表达式:

import re
 
pat = r'([.-])\s+|'
re.sub(pat, '\\1', a)
 #'Beautiful.is better5-than ugly'

re.sub(pat, '\\1', b)
 #'UK-Paris-Check Tech2013'

模式([.-])\s*查找.-然后将其捕获为第一组。然后,至少有1个水平空间。然后使用\\1将所有这些替换为第一个捕获的组

如果你不理解正则表达式,你可以试试这段代码

代码:

a = 'Beautiful. is better5- than ugly'
b = 'UK- Paris- Check Tech2013'
c = 'Beautiful  . is better5  - than ugly'

def replace_delimiters(s):
    delimiters = [". ","- "," ."," -"]
    while any([delimiter in s for delimiter in delimiters]):
        s = s.replace(". ",".").replace("- ","-").replace(" .",".").replace(" -","-")
    return s

print(replace_delimiters(a))
print(replace_delimiters(b))
print(replace_delimiters(c))

结果:

Beautiful.is better5-than ugly
UK-Paris-Check Tech2013
Beautiful.is better5-than ugly

以正确的顺序使用replace是有用的

def format(s: str) -> str:
    return s.replace('. ', '.').replace('- ', '-')

print(format('Beautiful. is better5- than ugly'))
print(format('UK- Paris- Check Tech2013'))
# Output
# a = 'Beautiful.is better5-than ugly'
# b = 'UK-Paris-Check Tech2013'

相关问题 更多 >

    热门问题