gpt4 book ai didi

python - ksh 风格的左右字符串剥离匹配的表达式?

转载 作者:太空狗 更新时间:2023-10-30 00:52:20 25 4
gpt4 key购买 nike

如何像 ksh 一样从字符串中去除左边部分和右边部分直到匹配表达式?

例如:

${name##*/}

${name%/*}

(有关 ksh 示例,请参阅 http://www.well.ox.ac.uk/~johnb/comp/unix/ksh.html)。

我似乎无法想出使用 re 模块或 string 模块执行此操作的简单方法,但我一定遗漏了一些东西。

最佳答案

Ksh:

$ s='abc/def/ghi'
$ echo ${s%%/*}
abc
$ echo ${s%/*}
abc/def
$ echo ${s#*/}
def/ghi
$ echo ${s##*/}
ghi

python :

>>> s='abc/def/ghi'
>>> print s[:s.find("/")]
abc
>>> print s[:s.rfind("/")]
abc/def
>>> print s[s.find("/")+1:]
def/ghi
>>> print s[s.rfind("/")+1:]
ghi

编辑:

要处理模式缺失的情况,如 ΤZΩΤZΙΟΥ 所指出的:

>>> s='abc/def/ghi'
>>> t='no slash here'
>>> print s[:s.find("/") % (len(s) + 1)]
abc
>>> print t[:t.find("/") % (len(t) + 1)]
no slash here
>>> print s[:s.rfind("/") % (len(s) + 1)]
abc/def
>>> print t[:t.rfind("/") % (len(t) + 1)]
no slash here
>>> print s[s.find("/")+1:]
def/ghi
>>> print t[t.find("/")+1:]
no slash here
>>> print s[s.rfind("/")+1:]
ghi
>>> print t[t.rfind("/")+1:]
no slash here

关于python - ksh 风格的左右字符串剥离匹配的表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com