2014-01-28 30 views
0

我有一个字符串,它看起来像这样基于某种模式

text = HybridHello.x /usr/lib64/crt1.o /usr/lib64/crti.o /opt/pgi/11.9.0/linux86-64/11.9/lib/trace_init.o /usr/lib64/gcc/x86_64-suse-linux/4.3/crtbeginT.o /opt/pgi/11.9.0/linux86-64/11.9/lib/initmp.o /opt/cray/atp/1.4.1/lib//libAtpSigHandler.a /opt/cray/mpt/5.3.5/xt/seastar/mpich2-pgi/109/lib/libmpich_pgi.a /opt/cray/mpt/5.3.5/xt/seastar/mpich2-pgi/109/lib/libmpl.a /opt/cray/pmi/2.1.4-1.0000.8596.15.1.ss/lib64/libpmi.a /opt/cray/portals/2.2.0-1.0301.26633.6.9.ss/lib64/libportals.a /usr/lib/alps/libalpslli.a /usr/lib/alps/libalpsutil.a /usr/lib64/libpthread.a /opt/pgi/11.9.0/linux86-64/11.9/lib/libpgmp.a /usr/lib64/libpthread.a /opt/pgi/11.9.0/linux86-64/11.9/lib/nonuma.o /opt/pgi/11.9.0/linux86-64/11.9/lib/libnspgc.a /opt/pgi/11.9.0/linux86-64/11.9/lib/libpgc.a /usr/lib64/libpthread.a /usr/lib64/gcc/x86_64-suse-linux/4.3/libgcc.a /usr/lib64/gcc/x86_64-suse-linux/4.3/libgcc_eh.a /usr/lib64/libc.a /usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o /usr/lib64/crtn.o 

我想分割基于第一个“/”,然后持续太空拒绝第一这个字符串的内容拆分的字符串。文件名(在这种情况下HybridHello.x)例如 -

/usr/lib64/crt1.o 
/usr/lib64/crti.o 
/opt/pgi/11.9.0/linux86-64/11.9/lib/trace_init.o 
/usr/lib64/gcc/x86_64-suse-linux/4.3/crtbeginT.o 

并且同样。

我在正则表达式方面有一点经验,但在perl中也是如此。有人可以请指教吗?

+0

你真的需要这里的正则表达式吗? – devnull

回答

1

正则表达式是这个工作的矫枉过正。您可以使用str.split并从清单中切出第一单元输出注意它米

for files in text.split()[1:]: 
    print files 

/usr/lib64/crt1.o 
/usr/lib64/crti.o 
/opt/pgi/11.9.0/linux86-64/11.9/lib/trace_init.o 
.... 

正则表达式equivalant

实施ight是re.split("\s+", test)[1:]re.findall("[^\s]+", test)[1:],但它不应该是明显的,它不必要的

+0

谢谢,感谢这! – kay