首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一系列字符串中删除不需要的子字符串。

从一系列字符串中删除不需要的子字符串。
EN

Stack Overflow用户
提问于 2014-04-21 12:48:32
回答 3查看 91关注 0票数 0

我有一系列字符串,如下所示

代码语言:javascript
复制
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

在去掉不想要的字符串后,将分别给出所需的结果字符串如下

代码语言:javascript
复制
  Jaguor 1474
  Nano 5864 
  Indica 8586_k5478
  Nano 5864_E5478
  Bolero 8974_1567

我尝试了下面的代码来完成这个任务,但是没有得到预期的结果。

代码语言:javascript
复制
Vehiclename.replace("Tata ","").replace("Series","").replace("Pro ","").replace(" Car","")

还有其他更好的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-21 14:03:01

代码语言:javascript
复制
reobj = re.compile(r"Tata ([\w ]+\d+).*?$", re.IGNORECASE | re.MULTILINE)
result = reobj.sub(r"\1", subject)

http://rubular.com/r/jvvtCjlTKy

代码语言:javascript
复制
Jaguor 1474
Nano Pro 5864
Indica 8586 k5478
Nano 5864 E5478
Bolero 8974 1567
票数 1
EN

Stack Overflow用户

发布于 2014-04-21 12:59:30

结合我的评论:

在您的示例中,您有Tata,但您正在尝试替换Tata<space><space>。在您的示例中,series是以不同的方式编写的,Pro也是如此,深入了解String replace()的文档

方法replace()返回字符串的副本,其中旧的出现被替换为新的,可以选择地将替换的数量限制在最大。

在您的示例中,您似乎没有使用返回的值进行任何操作,这应该有效:

代码语言:javascript
复制
Vehiclename = Vehiclename.replace("Tata ","").replace("Series","").replace("Pro ","").replace(" Car","")
票数 0
EN

Stack Overflow用户

发布于 2014-04-21 13:20:24

以下是您的正则表达式:

代码语言:javascript
复制
'\s.*[0-9]{4}'

您可以在python中实现。这并不是移除你正在寻找的东西,而是给出你想要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23197775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档