匹配从结尾开始直到数字被击中的字符串索引

时间:2017-06-20 16:11:57

标签: python regex string substring

我有一个python字符串,它是一个格式为

的文档编号

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

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

字符串长度不固定,因为它来自word文档。

实施例

line = 'A97-5000E000 Date:'

预期输出

line = 'A97-5000E000'

示例2

line = 'TRS 4000E000 Page 1 of'

预期输出

line = 'TRS 4000E000'

示例3

line = 'TRS 3000231 Date: Dec, 12 20'

预期输出

line = 'TRS 3000231'

2 个答案:

答案 0 :(得分:1)

你可以使用这个正则表达式([A-Z0-9]{3}[- ])([A-Z0-9]+)\s.*,它可以:

  • ([A-Z0-9]{3}[- ])匹配一组大写字母和长度为3的点数,后跟-space
  • ([A-Z0-9]+)第二组匹配大写字母并在下一个空格之前退出

所以最终结果是第1组和第2组$1$2

regex demo

答案 1 :(得分:0)

如果您想要的部分长度是固定的,您可以使用切片:
line[:12]