带有文字字符串的RegExMatch反向引用组

带有文字字符串的RegExMatch反向引用组,regex,Regex,我不知道如何使反向引用传递一组字符串,而不是仅传递1,这对我来说很难解释,但我希望您能理解 这就是我所拥有的,XX([^-]+?)XX 它将匹配12345XX文本XX54321 它将与12345XX-text-XX54321不匹配 问题出在这里>([^---]+?)我试图为您提供一个正则表达式,它匹配一个简单字符串、一个短划线内的字符串和所有短划线 Regex (?:XX\s?)([\w-]+)(?:\sXX) (?:XX\s?[^\w]*)([\w]+)(?:[^\w]*\sXX) 测试字

我不知道如何使反向引用传递一组字符串,而不是仅传递1,这对我来说很难解释,但我希望您能理解

这就是我所拥有的,XX([^-]+?)XX

它将匹配12345XX文本XX54321

它将与12345XX-text-XX54321不匹配


问题出在这里>([^---]+?)我试图为您提供一个正则表达式,它匹配一个简单字符串、一个短划线内的字符串和所有短划线

Regex

(?:XX\s?)([\w-]+)(?:\sXX)
(?:XX\s?[^\w]*)([\w]+)(?:[^\w]*\sXX)
测试字符串

12345XX文本XX54321

12345XX-文本-XX54321

12345XX---XX54321

结果

比赛1

  • [8-12]
    text
  • 比赛2

  • [29-35]
    -文本-
  • 比赛3

  • [52-55]
    --
  • 试一试


    设置2

    Regex

    (?:XX\s?)([\w-]+)(?:\sXX)
    
    (?:XX\s?[^\w]*)([\w]+)(?:[^\w]*\sXX)
    
    测试字符串

    12345XX文本XX54321

    12345XX-文本-XX54321

    12345XX---测试---XX54321

    结果

    比赛1

  • [8-12]
    text
  • 比赛2

  • [30-34]
    text
  • 比赛3

  • [55-59]
    测试
  • 试一试


    注意:测试字符串和正则表达式基于假设,我们可以根据需要进行调整

    使用负前瞻:
    (?!--)
    方括号匹配所包含的任何项目,但只匹配一次。使用
    [^-]
    等同于使用
    [^-]
    。正如@hjpotter92所提到的,你需要的是消极的前瞻。记得在后面跟一个匹配的项目,例如
    ((?!--)++
    谢谢wolffer这就是我要找的=P