Python 模式匹配字符串



我正在尝试模式匹配一个字符串,以便如果它以字符"std"结尾,我会拆分最后 6 个字符并附加不同的前缀。

我假设我可以使用正则表达式和 re.split 来做到这一点,但我不确定正确的符号来附加一个新前缀并根据最后 6 个字符的存在获取最后 3 个字符。

regex = r"([a-zA-Z])"
if re.search(regex, "std"):
match = re.search(regex, "std")
#re.sub(r'Z', '', varname)

您对如何在此处使用正则表达式感到困惑。您的代码说"在字符串'std'中搜索任何字母数字字符"。

但是无论如何,这里没有必要使用正则表达式。只需使用字符串切片,.endswith

if my_string.endswith('std'):
new_string = new_prefix + mystring[-6:]

不需要正则表达式。只需使用标准字符串方法:

if s.endswith('std'):
s = s[:-6] + new_suffix

但是如果你必须使用正则表达式,你会替换一个正则表达式,你会替换新的后缀:

regex = re.compile(".{3}std$")
s = regex.sub(new_suffix, s)

最新更新