从if条件传递给split函数的参数

2024-06-17 15:32:47 发布

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

string= "im fine.gds how are you"

if '.gds' or '.cdl' in string :

    a=string.split("????????")

上面的字符串可以包含.gds.cdl扩展名。我想根据扩展名拆分字符串。在

这里如何将参数传递给split函数。(EX如果.gds以字符串形式存在,那么它应该取split(".gds") 如果.cdl在字符串中,那么它应该得到split(".cdl")


Tags: or函数字符串inyoustringifare
3条回答

使用正则表达式模块repattern1或{}拆分

import re
re.split('\.gds|\.cdl', your_string)

示例:

^{pr2}$

我认为您必须拆分if语句:

if '.gds' in string:
    a = string.split('.gds')
elif '.cdl' in string:
    a = string.split('.cdl')
else:
    a = string # this is a fallback in case none of the patterns is in the string

此外,您的in语句是不正确的;它应该是错误的

^{pr2}$

注意,这个解决方案假设字符串中只有一个模式。如果两种模式都可以出现在同一个字符串上,请参阅Vikas的答案。在

您可以尝试定义如下函数:

def split_on_extensions(string, *extensions):
    for ext in extensions:
        if ext in string:
            return string.split(ext)
    return string

当然,你给出扩展的顺序是很关键的,因为你将在第一个扩展上分开。。。在

相关问题 更多 >