Regex 选项样式字符串的正则表达式

Regex 选项样式字符串的正则表达式,regex,Regex,另一个卡在Regex土地上。。。 具有以下行 单词“Blabla”-选项1:Bla di Bla-选项2:Ha 我想在末尾匹配2个“选项”,这样我就有了以下组: 选择1 布拉迪布拉 选择2 哈 到目前为止,我得到的是: -(\w+?):(.+?)(?=-|$) 我想它的意思应该是:“一个连字符,后面跟一个单词,后面跟一个冒号,后面跟一些字符,后面跟一个连字符或换行符,而不使用这两个字符中的任何一个” 但不知怎的,它出错了,只有前两组会被抓获。我哪里出错了?没错。您没有提到您使用的是哪种语言,

另一个卡在Regex土地上。。。 具有以下行

单词“Blabla”-选项1:Bla di Bla-选项2:Ha

我想在末尾匹配2个“选项”,这样我就有了以下组:

  • 选择1
  • 布拉迪布拉
  • 选择2
到目前为止,我得到的是: -(\w+?):(.+?)(?=-|$)

我想它的意思应该是:“一个连字符,后面跟一个单词,后面跟一个冒号,后面跟一些字符,后面跟一个连字符或换行符,而不使用这两个字符中的任何一个”


但不知怎的,它出错了,只有前两组会被抓获。我哪里出错了?

没错。您没有提到您使用的是哪种语言,但以下是它在PHP中的工作方式:

$text = 'Word "Blabla" -Option1:Bla di Bla -Option2:Ha';
preg_match_all('/-(\w+?):(.+?)(?=-|$)/', $text, $matches, PREG_SET_ORDER);
print_r($matches);
产生:

Array
(
    [0] => Array
        (
            [0] => -Option1:Bla di Bla 
            [1] => Option1
            [2] => Bla di Bla 
        )

    [1] => Array
        (
            [0] => -Option2:Ha
            [1] => Option2
            [2] => Ha
        )

)

是的…看起来我把事情搞砸了。既然我们都同意,我们可以结束这个。。。