Regex 正则表达式匹配一些包装文本

Regex 正则表达式匹配一些包装文本,regex,text,pcre,Regex,Text,Pcre,考虑以下案文: aas( I)f df (as)(dfdsf)(adf).dgdf(sfg).(dfdf) asdfsdf dsfa(asd #54 54 !fa.) sdf 我想在括号之间检索文本,但相邻括号应该考虑单个单元。我该怎么做 对于上述示例,所需输出为: (一) (as)(dfdsf)(adf) (sfg)。(dfdf) (asd#54!fa) 这一个应该可以做到: \([A-Za-z0-9]+\) 这一个应该做到: \([A-Za-z0-9]+\) 请尝试[^(\([^(

考虑以下案文:

aas(  I)f df (as)(dfdsf)(adf).dgdf(sfg).(dfdf) asdfsdf dsfa(asd #54 54 !fa.) sdf
我想在括号之间检索文本,但相邻括号应该考虑单个单元。我该怎么做

对于上述示例,所需输出为:

  • (一)
  • (as)(dfdsf)(adf)
  • (sfg)。(dfdf)
  • (asd#54!fa)

    • 这一个应该可以做到:

      \([A-Za-z0-9]+\)
      

      这一个应该做到:

      \([A-Za-z0-9]+\)
      
      请尝试
      [^(\([^()]+([)](^[:alnum:]*)?[([^()]+)*\)[^)]
      。捕获组1是您想要的

      此表达式假定除括号外的每种字符都可能出现在括号之间的文本中,并且它与嵌套括号的部分不匹配。

      请尝试
      [^(\([^()]+([)](^[:alnum:][*)?[(][^()]+*)[^)]
      。捕获组1是您想要的

      此表达式假定除括号外的每种字符都可能出现在括号之间的文本中,并且它与嵌套括号的部分不匹配。

      我将使用:
      /(?:\(\w+\)(?:\(?=\())+/g

      • \(\w+\)
        以匹配a-zA-Z0-9\内部的文字大括号
      • (?:\。(?=\())?
        仅当后面紧跟着另一个大括号时,才捕获文字
      • 将整个过程包装在
        (?:)+
        中,以将相邻捕获连接在一起
      我会选择:
      /(?:\(\w+\)(?:\(?=\())+/g

      • \(\w+\)
        以匹配a-zA-Z0-9\内部的文字大括号
      • (?:\。(?=\())?
        仅当后面紧跟着另一个大括号时,才捕获文字
      • 将整个过程包装在
        (?:)+
        中,以将相邻捕获连接在一起
      假设
      • 没有嵌套
        ()
        ,也没有逃逸
        ()
      • 括号通过
        字符链接在一起,或者通过紧挨在一起(不允许灵活的间距)链接在一起
      • <> >(a)(b)(c)< /C> >考虑单个令牌(<代码> ./Cord>是可选的)。
      解决方案 下面的正则表达式将与全局匹配(全部匹配)函数一起使用

      \([^)]*\)(?:\.?\([^)]*\))*
      
      请自行添加分隔符

      解释 正则表达式的分解(间距不重要)。在
      #
      之后和之后是注释,而不是正则表达式的一部分

      \(             # Literal (
      [^)]*          # Match 0 or more characters that are not )
      \)             # Literal ). These first 3 lines match an instance of wrapped text
      (?:            # Non-capturing group
        \.?          # Optional literal .
        \([^)]*\)    # Match another instance of wrapped text
      )*             # The whole group is repeated 0 or more times
      
      假设
      • 没有嵌套
        ()
        ,也没有逃逸
        ()
      • 括号通过
        字符链接在一起,或者通过紧挨在一起(不允许灵活的间距)链接在一起
      • <> >(a)(b)(c)< /C> >考虑单个令牌(<代码> ./Cord>是可选的)。
      解决方案 下面的正则表达式将与全局匹配(全部匹配)函数一起使用

      \([^)]*\)(?:\.?\([^)]*\))*
      
      请自行添加分隔符

      解释 正则表达式的分解(间距不重要)。在
      #
      之后和之后是注释,而不是正则表达式的一部分

      \(             # Literal (
      [^)]*          # Match 0 or more characters that are not )
      \)             # Literal ). These first 3 lines match an instance of wrapped text
      (?:            # Non-capturing group
        \.?          # Optional literal .
        \([^)]*\)    # Match another instance of wrapped text
      )*             # The whole group is repeated 0 or more times
      

      (sfg)。(dfdf)
      被认为是相邻的,即使在
      之间?@Wiseguy是的,它被认为是。只有字母和数字不相交的括号第一个标记中有空格
      (I)
      。你确定它有效吗?@NHAHDH是的,它有效。
      (dfdf)
      被认为是相邻的,即使中间有
      。@Wiseguy是的,它被认为是相邻的。只有字母和数字不相交的括号第一个标记中有空格
      (I)
      。你确定它是有效的吗?@nhahdh是的,它是有效的。它不会因为它没有考虑括号中文本的邻接性而生效。它不会因为它没有考虑括号中文本的邻接性而生效。只是注意到你的问题是为了。显示了我有多注意,但正则表达式仍然有效!刚刚注意到你的问题是为了。显示了我的关注度,但正则表达式仍然有效!非常感谢,我使用了
      \([^)]*\(?:[^\pL]*?\([^)]*)*
      非常感谢,我使用了
      \([^)]*)(?:[^\pL]*([^)]*)*