如何比较两个字符串,并截除某一字符串在另一字符串中不存在的子字符串呢 ?

清钟沁桐 2011-02-25 01:53:28
cfiles="aaa.c bbb.c ccc.c ddd.c "
sub="aaa.c d.c"

对比cfiles和sub这两个字符串,如何把sub中存在,而cfiles中不存在的字符串d.c去掉
使sub="aaa.c " 呢 ?
...全文
152 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
清钟沁桐 2011-03-03
  • 打赏
  • 举报
回复
shell 中好像只能依次遍历匹配,效率很低
swwei2002 2011-03-02
  • 打赏
  • 举报
回复
刚刚在书上瞄到的

cfiles="aaa.c bbb.c ccc.c ddd.c "
sub="aaa.c d.c"
a = set(cfiles.split(' '))
b = set(sub.split(' '))
res = b - (b - a)
print res
bh20077 2011-03-01
  • 打赏
  • 举报
回复
我觉得3楼的方法很好
清钟沁桐 2011-03-01
  • 打赏
  • 举报
回复
en ,我下次描述清楚点。确实可以实现的具体语言太多了
luotuo512 2011-02-25
  • 打赏
  • 举报
回复
cfiles="aaa.c bbb.c ccc.c ddd.c "   
sub="aaa.c d.c bbb.c"
sub=sub.split(' ')
cfiles=cfiles.split(' ')
sub=[i for i in sub if i in cfiles ]
print sub
proorck6 2011-02-25
  • 打赏
  • 举报
回复
好像是先要 split 一下
iambic 2011-02-25
  • 打赏
  • 举报
回复
谁让你自己不说清楚。
清钟沁桐 2011-02-25
  • 打赏
  • 举报
回复
大家都使用Python,没有使用shell的吗?
i_Ben 2011-02-25
  • 打赏
  • 举报
回复

不知道这样行不行?

cfiles = "aaa.c bbb.c ccc.c ddd.c"
sub = "aaa.c d.c"
cfiles = cfiles.split(" ")
sub = sub.split(" ")
print " ".join(i for i in sub if i in cfiles)
iambic 2011-02-25
  • 打赏
  • 举报
回复
楼上的把顺序都搞乱了,应该是不行的。另外split之后应该要join起来。
s_liangchao1s 2011-02-25
  • 打赏
  • 举报
回复
没玩过python,过来试试

cfiles = 'aaa.c bbb.c ccc.c ddd.c'
sub = 'aaa.c d.c'
sub = set(sub.split(' ')) & set(cfiles.split(' '))
print sub

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧