Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 匹配字符串的索引,从末尾开始,直到找到一个数字为止_Python_Regex_String_Substring - Fatal编程技术网

Python 匹配字符串的索引,从末尾开始,直到找到一个数字为止

Python 匹配字符串的索引,从末尾开始,直到找到一个数字为止,python,regex,string,substring,Python,Regex,String,Substring,我有一个python字符串,它是一个文档编号,格式为 'A87-0000E000'或'TRS-0000E000' 当我解析word文档中的文档号时,有时我会在字符串中得到日期和其他我不想要的信息。有没有一种方法可以匹配正则表达式,或者从字符串的末尾开始向后匹配子字符串,直到得到一个数字 字符串长度不是固定的,因为它来自word文档。 例子 预期产量 例2 预期产量 例3 预期产量 如果所需零件的长度是固定的,则可以使用切片: 行[:12]您可以使用此正则表达式([A-Z0-9]{3}[-])

我有一个python字符串,它是一个文档编号,格式为

'A87-0000E000'或'TRS-0000E000'

当我解析word文档中的文档号时,有时我会在字符串中得到日期和其他我不想要的信息。有没有一种方法可以匹配正则表达式,或者从字符串的末尾开始向后匹配子字符串,直到得到一个数字

字符串长度不是固定的,因为它来自word文档。 例子 预期产量
例2 预期产量
例3 预期产量
如果所需零件的长度是固定的,则可以使用切片:

行[:12]
您可以使用此正则表达式
([A-Z0-9]{3}[-])([A-Z0-9]+)\s.
,它可以:

  • ([A-Z0-9]{3}[-])
    匹配一组大写字母和长度为3的数字,后跟
    -
    空格
  • ([A-Z0-9]+)
    在下一个空格前匹配大写字母和degits的第二组
因此最终结果是第1组和第2组
$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'