我正在尝试模式匹配一个字符串,以便如果它以字符"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)