Python re.split如何在变量指定的多个模式上进行拆分

xwbd5t1u  于 2023-05-13  发布在  Python
关注(0)|答案(1)|浏览(218)

我试图将一个字符串拆分为多个子字符串,但我无法让re.split()接受2个变量作为模式。我看到了多个如何使用单个字符或特殊字符组合作为模式的示例,但没有关于使用变量的示例。
这些是虚拟输入。字符串将更复杂,基于其他因素而改变,并且可能出现多次。

string_to_split = "This_is_the_string_to_split"
pattern1 = "_is_"
pattern2 = "_to_"

预期结果:

# ['This', 'the_string', 'split']

我可以单独指定模式进行拆分,也可以在指定为正则表达式时指定模式的值进行拆分

re.split(pattern1, string_to_split)
# ['This', 'the_string_to_split']
re.split(pattern2, string_to_split)
# ['This_is_the_string', 'split']
re.split(r'_is_|_to_', string_to_split)
# ['This', 'the_string', 'split']

我不能同时使用变量名(pattern1,pattern2)

re.split(pattern1|pattern2, string_to_split)
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# TypeError: unsupported operand type(s) for |: 'str' and 'str'
re.split(r'pattern1|pattern2', string_to_split)
['This_is_the_string_to_split']
zdwk9cvp

zdwk9cvp1#

合并图案和'|'运算符使用字符串连接:
re.split(pattern1 + "|" + pattern2, string_to_split)

相关问题