是否有办法忽略某些字符之间的文本?我当前的正则表达式包括引号之间的文本。我需要忽略这个
raw_pmc_df['(.*?)]
当前输出:
to_max(((100 * **raw_pmc_df['CPF_CPF_STAT_STALL']**) / **raw_pmc_df['CPF_CPF_STAT_BUSY']**).where((**raw_pmc_df['CPF_CPF_STAT_BUSY']** != 0), None))
所需输出:
to_max(((100 * **raw_pmc_df['** CPF_CPF_STAT_STALL **']**) / **raw_pmc_df['** CPF_CPF_STAT_BUSY **']**).where((**raw_pmc_df['** CPF_CPF_STAT_BUSY **']** != 0), None))
一个想法是使用正面向前看:
raw_pmc_df(?=['[^']+'])
匹配将是
raw_pmc_df
可以在后面加上方括号
在普通正则表达式引擎中没有办法进行拆分匹配。事实上,没有必要这样做:您可以设计一个包含多个捕获组的正则表达式:
(raw_pmc_df)([)(?:'[^']'+)(])
期望的结果是捕获组1,2,3的连接(引号部分不计算,因为(:
括号)。这样你就不需要积极地向前看了。
在这个特殊的例子中,regex被设计为捕获组2和3包含预先已知的字符串。
似乎你想用']
删除这些raw
和['
,并保留介于两者之间的内容。
如果是这种情况,可以使用
raw_pmc_df['(.*?)']
并替换为$1
(或1
,取决于您的编程环境)
参见regex演示。
细节:
raw_pmc_df['
——raw_pmc_df['
字符串(.*?)
-组1:除换行符外的任何零或多个字符尽可能少']
-']
字符串。