【问题标题】:What's the regular expression that matches a square bracket?匹配方括号的正则表达式是什么?
【发布时间】:2009-05-29 20:49:13
【问题描述】:

我想要一个匹配方括号[ 的正则表达式。我还没有找到一个。我想我尝试了所有可能性,但没有找到合适的。什么是有效的正则表达式?

【问题讨论】:

    标签: regex


    【解决方案1】:

    如何在方括号前面使用反斜杠\。通常方括号匹配一个字符类。

    【讨论】:

    • 如果您尝试在 C# 中编写此正则表达式,则必须在方括号前使用 \\。
    • 其实我不知道它在哪里工作,为什么答案会获得如此高的排名。
    • 这个问题询问的是正则表达式,而不是关于如何在宿主语言中对它们进行编码,宿主语言会劫持反斜杠以供自己使用。如果您在一个 shell 或语言解析器将解析或以其他方式处理反斜杠的地方,您可能需要将反斜杠加倍,但这不是这个特定问题所要问的。
    【解决方案2】:

    尝试使用\\[,或直接使用\[

    【讨论】:

      【解决方案3】:

      如果要匹配以[ 开头并以] 结尾的表达式,请使用\[[^\]]*\]

      以下是每个部分的含义(如www.regexr.com 中所述):

      【讨论】:

      • 你能告诉我们吗?屋顶@​​987654327@ 表示方括号中的not 是一个字符类。
      【解决方案4】:

      你是用\ 来逃避它吗?

      /\[/
      

      这是一个有用的资源,可以帮助您开始使用正则表达式:

      Regular-Expressions.info

      【讨论】:

        【解决方案5】:

        一般来说,当您需要正则表达式中的“特殊”字符时,只需在其前面加上 \。所以文字 [ 将是 \[

        【讨论】:

          【解决方案6】:

          如果您要同时查找方括号的两种变体,您可以使用以下模式,该模式定义了 either[ 符号 ] 符号:/[\[\]]/

          【讨论】:

          • 您可以省略第一个反斜杠。 [[\]] 将匹配任一括号。在某些正则表达式方言(例如 grep)中,如果您将其紧跟在 [ 之后,则可以省略 ] 之前的反斜杠(因为空字符类永远不会有用):[][]。但这在 Java 或 JavaScript 中不起作用。
          【解决方案7】:

          [ 之前的反斜杠是否可以使用?

          \[\\[ ?

          【讨论】:

            【解决方案8】:

            如果要删除[],请使用表达式:"\\[|\\]"

            两个反斜杠转义方括号,管道是“或”。

            【讨论】:

            • 谢谢!!其他答案都不适合我。我试图将一个 json 数组字符串拆分为一个 Java 数组。所以我不得不删除引号和方括号,然后在逗号上拆分 ["item1" , "item2"]
            • 一般情况下,这里的两个反斜杠是错误的。在某些语言中(如 Java、Python,如果不是文字 r"..." 字符串等),您需要反斜杠以将其作为单个反斜杠传递给正则表达式引擎,但这是宿主语言的(错误)功能, 而对于仅询问没有特定宿主语言的正则表达式的问题,这不是正确答案。
            猜你喜欢
            • 1970-01-01
            • 2013-06-18
            • 1970-01-01
            • 2011-08-03
            • 2018-04-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多