0

我需要构建一个正则表达式来匹配这样的东西:

“PQR 和 XYZ 或(ABC 或 LMN)”

请帮助我实现这一目标!

4

1 回答 1

4
  1. 正则表达式不可能正确匹配嵌套。
    为此,您需要一个上下文无关的语法

  2. 我在您的评论中看到,您提到您将使用 .NET。
    .NET 中的“正则表达式”库实际上比计算机科学中人们通常所说的“正则表达式” 更强大。

    可以使用 .NET 正则表达式来匹配使用平衡组定义的嵌套括号:

    \(
      (?>
          [^()]+
        |
          (?<DEPTH>\()
        |
          (?<-DEPTH>\))
      )*
      (?(DEPTH)(?!))
    \)
    

    要使此模式起作用,您需要忽略空格。

    请注意,这并非在每个正则表达式库中都可用,也不是计算机科学中定义的正则表达式

于 2013-05-10T08:02:04.537 回答