Regex忽略引号中的字符

  • 本文关键字:字符 Regex regex
  • 更新时间 :
  • 英文 :


是否有办法忽略某些字符之间的文本?我当前的正则表达式包括引号之间的文本。我需要忽略这个

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:除换行符外的任何零或多个字符尽可能少
  • ']-']字符串。

最新更新