根据 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.I
到 maxsplit
而没有 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")']
假设我有一个字符串
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.I
到 maxsplit
而没有 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")']