[英]Python pattern match a string
我正在尝试对字符串进行模式匹配,以便如果它以字符'std'结尾,我将分割最后6个字符并附加一个不同的前缀。
我假设我可以使用正则表达式和re.split来做到这一点,但是我不确定追加新前缀并根据后3个字符的存在取后6个字符的正确表示法。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.