【发布时间】:2014-02-26 09:26:05
【问题描述】:
我想提取 ':' 和 '|' 之间的文本字符,但在第二个和第三个数据中,':' 后面有一个空格
输入:
Referencia:22726| Referencia Cliente Ak: 233726 | Referencia histórica: 256726 | Suelo | AGOLADA (Pontevedra) - CARPAZO O PE#A LONJA [EXTRACT]
Referencia:39766| Referencia Cliente Ak: 39767 | Referencia histórica: 39768 | Garaje | MOJACAR (Almería) - URB.VILLA MIRADOR DEL MAR - MOD. # [EXTRACT]
Referencia:397A5| Referencia Cliente Ak: 397B5 | Referencia histórica: 397C5 | Garaje | MOJACAR (Almería) - VILLA MIRADOR DEL MAR-MODULO #-PLAZA 4 [EXTRACT]
Referencia:AA39803| Referencia Cliente Ak: P_39803 | Referencia histórica: 200_39803 | Garaje | MOJACAR (Almería) - VILLA MIRADOR DEL MAR - MODULO [EXTRACT]
所需的输出:
22776
233726
256726
39766
39767
39768
397A5
397B5
397C5
AA39803
P_39803
200_39803
我的第一个模式:(?<=:)(\w{5,12})
这仅匹配第一列。
我的第二个模式:(?<=:\s)(\w{5,12})
这匹配第二列和第三列
所以我相信我的第三个模式是正确的:(?<=:\s?)(\w{5,12}) 该模式不起作用。
【问题讨论】:
-
您可以使用
regex模块,它支持前瞻和后瞻中的可变长度。他们说,计划替换标准的re模块。您可以使用 Pip 安装它。 (pip install regex)。
标签: python regex lookbehind