Regex 将多个环视正则表达式与捕获组相结合

Regex 将多个环视正则表达式与捕获组相结合,regex,pcre,regex-lookarounds,Regex,Pcre,Regex Lookarounds,给定一个字符串 @1=a@2=b@3=c@4=d>@1=a@2=b@3=c1@4=d 我想捕获@3和@4之间的内容,然后断言字符串的第二部分中的值(本例中为c)不同 为了做到这一点,我想出了 @3=((?:\w |-|'|“,|\)+?)@4=d.+(?为什么您的模式不起作用?它在末尾包含3个环视框:(?@1=a@2=b@3=c1@4=dstring,正则表达式匹配并捕获c,因为它不等于与第二个[\w',.-]*匹配的c1子字符串 详细信息 @3=-a@3=子字符串 ([\w',.-]*)-第

给定一个字符串

@1=a@2=b@3=c@4=d>@1=a@2=b@3=c1@4=d

我想捕获@3和@4之间的内容,然后断言字符串的第二部分中的值(本例中为c)不同

为了做到这一点,我想出了


@3=((?:\w |-|'|“,|\)+?)@4=d.+(?为什么您的模式不起作用?它在末尾包含3个环视框:
(?@1=a@2=b@3=c1@4=d
string,正则表达式匹配并捕获
c
,因为它不等于与第二个
[\w',.-]*
匹配的
c1
子字符串

详细信息

  • @3=
    -a
    @3=
    子字符串
  • ([\w',.-]*)
    -第1组:零个或多个字符,它们是字母、数字、
    -
  • @4=d
    -文本
    @4=d
    子字符串
  • *?
    -除换行符以外的任何0+字符尽可能少
  • >
    -a
    >
    子字符串
  • *?
    -除换行符以外的任何0+字符尽可能少
  • @3=
    -a
    @3=
    子字符串
  • (?!\1@)
    -如果紧靠当前位置右侧的文本等于组1中捕获的文本,并且后跟
    @
  • [\w',.-]*
    -零个或多个字符,它们是字母、数字、
    -
  • @4=d
    -文本
    @4=d
    子字符串

    • 试试这个模式:
      (?>)+(?ur regex
      @3=(?:\w-?)+?)@4=d+(?他问我为什么这没有帮助?谢谢,但我不想这样做match@mohit对不起,我更新了答案。解释与前一个非常相似:)您可以删除否决票:)请注意,
      @
      中已经足够了(?!\1@)
      lookahead,因为值所包含的预期字符(
      [\w',.-]
      )不包括符号。
      (?)\1@4)
      (?)\1@4=)
      将在此处执行相同的操作。
      @3=([\w'",.-]*)@4=d.*?>>.*?@3=(?!\1@)[\w'",.-]*@4=d