我试图将一个字符串拆分为多个子字符串,但我无法让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']
1条答案
按热度按时间zdwk9cvp1#
合并图案和'|'运算符使用字符串连接:
re.split(pattern1 + "|" + pattern2, string_to_split)