我有一系列字符串,如下所示
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","")还有其他更好的方法吗?
发布于 2014-04-21 14:03:01
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发布于 2014-04-21 12:59:30
结合我的评论:
在您的示例中,您有Tata,但您正在尝试替换Tata<space><space>。在您的示例中,series是以不同的方式编写的,Pro也是如此,深入了解String replace()的文档
方法replace()返回字符串的副本,其中旧的出现被替换为新的,可以选择地将替换的数量限制在最大。
在您的示例中,您似乎没有使用返回的值进行任何操作,这应该有效:
Vehiclename = Vehiclename.replace("Tata ","").replace("Series","").replace("Pro ","").replace(" Car","")发布于 2014-04-21 13:20:24
以下是您的正则表达式:
'\s.*[0-9]{4}'您可以在python中实现。这并不是移除你正在寻找的东西,而是给出你想要的东西。
https://stackoverflow.com/questions/23197775
复制相似问题