首页 > 解决方案 > 更改定义模式的字符串(Python)

问题描述

学习 Python,遇到了一个要求很高的初学者练习。

假设您有一个由“;”分隔的字符“块”组成的字符串。一个例子是:

cdk;2(c)3(i)s;c

你必须在旧字符串的基础上返回一个新字符串,但要按照一定的模式(这也是一个字符串),例如:

C?*

这种模式意味着每个块必须以'c'开头,'?' 字符必须由其他字母切换,最后是“*”由任意数量的字母切换。

因此,当应用模式时,您会返回如下内容:

cdk;cciiis

另一个例子:

字符串:2(a)bxaxb;ab

模式:a?*b

结果:aabxaxb

我非常粗暴的尝试导致了这个:

def switch(string,pattern):
d = []
for v in range(0,string):
    r = float("inf")
    for m in range (0,pattern):
        if pattern[m] == string[v]:
            d.append(pattern[m])
        elif string[m]==';':
            d.append(pattern[m])
        elif (pattern[m]=='?' & Character.isLetter(string.charAt(v))):
            d.append(pattern[m])
return d

提示?

标签: pythonstringreplace

解决方案


  • 要拆分字符串,您可以使用split()函数。

  • 对于字符串中的模式检测,您可以将正则表达式 (regex) 与re 库一起使用。


推荐阅读