根据 python 中的正则表达式值拆分字符串

split string based on regular expression value in python

假设我有一个字符串

exp = '"security_datafilter"."PRODUCT_CATEGORIES"."CATEGORY_NAME" IN ("CPU","Storage")' 

我想根据单词拆分字符串 IN 所以我的预期结果是

['"security_datafilter"."PRODUCT_CATEGORIES"."CATEGORY_NAME"','IN','("CPU","Storage")']

但在我的情况下它不起作用 这是我试过的

import re
exp_split = re.split(r'( in )',exp,re.I) 

re documentation: re.split(pattern, string, maxsplit=0, flags=0)

split() 函数期望第三个位置参数是 maxsplit 参数。您的代码给出 re.Imaxsplit 而没有 flags。你应该像这样给 flags 作为关键字参数:

exp_split = re.split(r'( in )',exp, flags=re.I)

只需将分隔符大写即可,如果您不希望结果中出现空格,请将它们保留在捕获组之外:

exp_split = re.split(r'\s(IN)\s', exp, re.I) 
exp_split

输出

['"security_datafilter"."PRODUCT_CATEGORIES"."CATEGORY_NAME"', 'IN', '("CPU","Storage")']