Python 匹配字符串的索引,从末尾开始,直到找到一个数字为止
我有一个python字符串,它是一个文档编号,格式为 'A87-0000E000'或'TRS-0000E000' 当我解析word文档中的文档号时,有时我会在字符串中得到日期和其他我不想要的信息。有没有一种方法可以匹配正则表达式,或者从字符串的末尾开始向后匹配子字符串,直到得到一个数字 字符串长度不是固定的,因为它来自word文档。 例子 预期产量Python 匹配字符串的索引,从末尾开始,直到找到一个数字为止,python,regex,string,substring,Python,Regex,String,Substring,我有一个python字符串,它是一个文档编号,格式为 'A87-0000E000'或'TRS-0000E000' 当我解析word文档中的文档号时,有时我会在字符串中得到日期和其他我不想要的信息。有没有一种方法可以匹配正则表达式,或者从字符串的末尾开始向后匹配子字符串,直到得到一个数字 字符串长度不是固定的,因为它来自word文档。 例子 预期产量 例2 预期产量 例3 预期产量 如果所需零件的长度是固定的,则可以使用切片: 行[:12]您可以使用此正则表达式([A-Z0-9]{3}[-])
例2 预期产量
例3 预期产量
如果所需零件的长度是固定的,则可以使用切片:
行[:12]
您可以使用此正则表达式([A-Z0-9]{3}[-])([A-Z0-9]+)\s.
,它可以:
匹配一组大写字母和长度为3的数字,后跟([A-Z0-9]{3}[-])
或-
空格
在下一个空格前匹配大写字母和degits的第二组([A-Z0-9]+)
$1$2
您能否共享完整的输入和预期的输出?您如何知道文件名不是“TRS 4000E000第1页,共5页”?您还没有给出任何理由说明为什么不能将其作为文件名。您是否反对简单地查找“页面”或“日期”并将其用作分隔符?我知道您给出了一些示例,但您拒绝使用该格式的答案,因此我们需要更好的格式定义。字符串来自word文档的标题,因此我可以确定它不是文件名。查找页面或日期实际上可能是最简单的解决方案。非常感谢。字符串长度可能不同,因为我是从文本文档中获取的。在原始问题中给出的所有示例中,格式都是固定长度的。组(1)和组(0)之间的区别是什么。我看到有时组(0)与我的字符串匹配,而有时组(1)与我的字符串匹配。@ProfessionalNameForDisplay这里我犯了一个错误,我的意思是
最终结果是组1和组2$1$2
group1和group2
line = 'A97-5000E000 Date:'
line = 'A97-5000E000'
line = 'TRS 4000E000 Page 1 of'
line = 'TRS 4000E000'
line = 'TRS 3000231 Date: Dec, 12 20'
line = 'TRS 3000231'