Regex 使用动态前瞻获取字符串的一部分

Regex 使用动态前瞻获取字符串的一部分,regex,Regex,我有以下字符串: [TITLE|suffix=ta|prefix=tb] [STORENAME|suffix=sa|prefix=sb] [DYNAMIC|limit=10|prefix=a|random=0|suffix=b|reverse=0] 我试图得到DYNAMIC前缀的值,它是a。查找应以[DYNAMIC开始,以|或]结束。[DYNAMIC和prefix=之间的所有内容都是动态的 这就是我到目前为止所尝试的:(?=DYNAMIC\\\\\)(prefix=)([^\\\\\]]+一种

我有以下字符串:

[TITLE|suffix=ta|prefix=tb] [STORENAME|suffix=sa|prefix=sb] [DYNAMIC|limit=10|prefix=a|random=0|suffix=b|reverse=0]
我试图得到DYNAMIC前缀的值,它是a。查找应以
[DYNAMIC
开始,以
|
]
结束。
[DYNAMIC
prefix=
之间的所有内容都是动态的


这就是我到目前为止所尝试的:
(?=DYNAMIC\\\\\)(prefix=)([^\\\\\]]+

一种可能是:

\[DYNAMIC.*?\|prefix=([^|\]]*)
在线查看


  • \[DYNAMIC
    -按字面意思匹配开口括号和
    DYNAMIC
  • *?
    -延迟匹配到:
  • \\124; prefix
    -按字面意思匹配管道符号和
    prefix=
  • -打开第一个捕获组。
    • [^ | \]*
      -尽可能多地匹配除管道符号和右括号以外的任何字符
    • -关闭第一个捕获组

    • 一种可能是:

      \[DYNAMIC.*?\|prefix=([^|\]]*)
      
      在线查看


      • \[DYNAMIC
        -按字面意思匹配开口括号和
        DYNAMIC
      • *?
        -延迟匹配到:
      • \\124; prefix
        -按字面意思匹配管道符号和
        prefix=
      • -打开第一个捕获组。
        • [^ | \]*
          -尽可能多地匹配除管道符号和右括号以外的任何字符
        • -关闭第一个捕获组

        • 我会使用以下两种表达方式之一:

          (?<=\[DYNAMIC\b[^\][]*?\|prefix=)[^|\]]+
          \[DYNAMIC\b[^\][]*?\|prefix=([^|\]]+)
          

          (?我会使用以下两个表达式之一:

          (?<=\[DYNAMIC\b[^\][]*?\|prefix=)[^|\]]+
          \[DYNAMIC\b[^\][]*?\|prefix=([^|\]]+)
          
          (?
          s.match(/(?
          s.match(/)?