首页 > 解决方案 > 正则表达式:如何过滤括号之间的特殊字符?

问题描述

我试图找到正确的正则表达式代码,它在括号之间填充匹配特殊字符(“),例如[ "-11.268390225228275, 14.952959610966833][-21.02888891289231, 14.952959610966833" ]。我只需要匹配“字符。

我已经尝试过这段代码(?<=\[)[^]]+(?=\]),但它只会匹配括号之间的所有字符,而不仅仅是“字符。

请问,有人知道如何只匹配括号之间的“字符吗?

标签: regex

解决方案


您可以使用 PCRE 正则表达式

(?:\G(?!\A)|\[)[^]["]*\K"

查看正则表达式演示

细节

  • (?:\G(?!\A)|\[)- 两种选择之一:
    • \G(?!\A) - 上一场成功比赛的结束
    • |- 或者
    • \[- 一个[字符
  • [^]["]*- 0 个或更多字符,而不是[,]"
  • \K- 匹配重置运算符,丢弃匹配内存缓冲区中到目前为止匹配的所有文本
  • "- 双引号。

推荐阅读