根据某种模式拆分字符串

2024-05-16 01:00:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根像这样的线

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

我想根据第一个“/”和一个连续的空格来分割这个字符串的内容。文件名(在本例中为hybridhhello.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方面也有经验。有人能告诉我吗?你知道吗


Tags: linuxlibusrtracex86gccoptcray
1条回答
网友
1楼 · 发布于 2024-05-16 01:00:26

正则表达式对于这项工作来说是一种过分的技巧。可以使用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
....

注意

它的Regex等价物可能是re.split("\s+", test)[1:]re.findall("[^\s]+", test)[1:],但它的不必要性并不明显

相关问题 更多 >