假设我得到了以下字符串:
P 1 (BNN-03) Voertuig te water Curacaostraat Groningen 011810 011871 013593 011833
A1 AMBU 18177 Binnendams 3373AE Hardinxveld-Giessendam HARDGD bon 81505
Prio 4(DIA: ja) AMBU 17104 F. Bordewijkstraat 3069WB Rotterdam ROTTDM bon 29230
我编写了以下正则表达式以对其进行测试:
^[ABP]\s?\d{1,3}|^PRIO\s?[1-5]|^\d{1,3}e?
我如何只能测试该字符串的前8个字符?我尝试了以下方法:
import re
str_to_test = "P 1 (BNN-03) Voertuig te water Curacaostraat Groningen 011810 011871 013593 011833"
expr = re.compile(r"^[ABP]\s?\d{1,3}|^PRIO\s?[1-5]|^\d{1,3}e?", re.IGNORECASE)
result = re.sub(expr, '', str_to_test);
print(result) # (BNN-03) Voertuig te water Curacaostraat Groningen 011810 011871 013593 011833
但这会完成整个字符串,这不是我想要的。我尝试更改str_to_test
为str_to_test[:8]
获取前8个字符,但这删除了我也需要的其余字符。请在这里帮助我。
我想看的输出:
P 1 (BNN-03) Voertuig te water Curacaostraat Groningen 011810 011871 013593 011833
-> (BNN-03) Voertuig te water Curacaostraat Groningen 011810 011871 013593 011833
A1 AMBU 18177 Binnendams 3373AE Hardinxveld-Giessendam HARDGD bon 81505
-> AMBU 18177 Binnendams 3373AE Hardinxveld-Giessendam HARDGD bon 81505
Prio 4 (DIA: ja) AMBU 17104 F. Bordewijkstraat 3069WB Rotterdam ROTTDM bon 29230
-> (DIA: ja) AMBU 17104 F. Bordewijkstraat 3069WB Rotterdam ROTTDM bon 29230
您可以使用切片,更改:
result = re.sub(expr, '', str_to_test);
至:
result = re.sub(expr, '', str_to_test[:8])+str_to_test[8:];
为了更好地了解切片的工作原理,请执行以下操作:
a = '1234567890'
print(a[:8], a[8:])
输出:
12345678 90
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句