我有以下正则表达式(示例在 Python 中):
pattern = re.compile(r'^(([a-zA-Z0-9]*[a-zA-Z]+)([\d]+)|([\d]+))$')
这可以正确解析任何具有数字后缀和可选的字母数字前缀的字符串:
a123
a2a123
123
All 将正确地123视为后缀。它将正确拒绝错误的输入:
abc
123abc
()123 # Or other non-alphanumerics
不过,正则表达式本身相当笨拙,因此,一些捕获组通常是空的,这意味着我必须执行额外的步骤来过滤掉它们。我很好奇是否有比“数字或以字符结尾的字母数字开头的数字”更好的方式来考虑这个正则表达式?
一只萌萌小番薯
慕标5832272
相关分类