我有一系列字符串,如下所示
Tata Jaguor 1474 pSNL Series Car
Tata Nano Pro 5864 Series Car
Tata Indica 8586 k5478
Tata Nano 5864 E5478
Tata Bolero 8974 1567 Series
在剥离不需要的字符串之后,期望的结果字符串分别给出如下
Jaguor 1474
Nano 5864
Indica 8586_k5478
Nano 5864_E5478
Bolero 8974_1567
我尝试了以下代码来执行此操作,但没有得到预期的结果
Vehiclename.replace("Tata ","").replace("Series","").replace("Pro ","").replace(" Car","")
还有其他更好的方法吗?
答案 0 :(得分:1)
reobj = re.compile(r"Tata ([\w ]+\d+).*?$", re.IGNORECASE | re.MULTILINE)
result = reobj.sub(r"\1", subject)
http://rubular.com/r/jvvtCjlTKy
Jaguor 1474
Nano Pro 5864
Indica 8586 k5478
Nano 5864 E5478
Bolero 8974 1567
答案 1 :(得分:0)
结合我的评论:
在您的示例中,您有Tata
,但您正在尝试替换Tata<space><space>
。您的示例中的series
编写的内容不同,Pro
也是如此,挖掘String replace()
的文档
方法replace()返回其中的字符串的副本 旧的事件已被替换为新的,可选地限制 最多的替换次数
在你的情况下,你似乎没有对返回的值做任何事情,这应该有效:
Vehiclename = Vehiclename.replace("Tata ","").replace("Series","").replace("Pro ","").replace(" Car","")
答案 2 :(得分:0)
以下是您的正则表达式:
'\s.*[0-9]{4}'
你可以在python中实现。这并没有删除你“不”寻找的东西而是提供你想要的东西。