我很想找到正则表达式的方法来解决我的问题,将数字尾部与任何字符的前导字符串分开。我已经处理过字符串处理的类似问题,但我认为 RegEx 可能会为我提供更少的努力,并且对未来有用。
我有一个有点复杂的字符串,末尾有数字:
'TxAnt0Standard_deviation_peak_variation'
'MeasCfg5Seq1TxAnt2MaxDiff_phase2'
'MeasCfg6Seq1TxAnt0MinAmpl_error_ant10'
等。
我需要将数字尾部与其他部分分开:
TxAnt0Standard_deviation_peak_variation'
和''
'MeasCfg5Seq1TxAnt2MaxDiff_phase'
和'2'
'MeasCfg6Seq1TxAnt0MinAmpl_error_ant'
和'10'
我找到了一个使用 re.match(( 方法的示例。我正在尝试这样的事情:
match = re.match(r"(.+)([0-9]*)", limitName, re.I)
items=tuple()
if match:
items = match.groups()
basis = items[0] #res: whole string
tail =items[1] #res: ''
这反过来又不做任务,我得到的是整根弦,还有一个空的刺痛。
您可以使用
match = re.match(r"(.*D)?(d*)$", limitName)
请参阅正则表达式演示。请注意,re.match
在字符串的开头查找匹配项,这就是我不使用^
锚点的原因。
图案详细信息
(.*D)?
- 一个可选的捕获组,尽可能多地匹配除换行字符以外的任何 0 个或多个字符,直到最后一个非数字字符,后跟...(d*)
- 捕获组 #2:任意 0 位或更多位数字$
- 字符串的结尾。
数字没有大小写,您不需要re.I
修饰符。