正则表达式-贪婪直到下一场比赛

时间:2020-06-15 15:09:31

标签: regex

我正在尝试为此模式创建正则表达式:

-someKeyword=somePhrase
-someOtherKeyword=someOtherPhrase

e.t.c。 问题是:关键字和短语应该在一个匹配项中成组,短语也可以包含字符“-”,现在我有了这个:-(?<keyword>[^=]*)=(?<phrase>[^-]*) 但这不支持短语中的“-”字符,我无法解决此问题,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

由于键可以包含任何字母,数字,下划线,点和空格字符,因此可以使用

-(?<keyword>[\w\s.]+)=(?<phrase>.*?)(?=-[\w\s.]+=|$)

请参见regex demo

详细信息

  • --连字符
  • (?<keyword>[\w\s.]+)-一个“关键字”组:1个以上的字母,数字,下划线,点, 空格字符
  • =-等号
  • (?<phrase>.*?)-一个“短语”组:除换行符以外的任何0个或多个字符,尽可能(由于*?),直到最左边...
  • (?=-[\w\s.]+=|$)-(与a匹配的正向超前)位置,其后紧跟-,1+个字母/数字/下划线/点/空格/空格,然后是=或字符串末。

答案 1 :(得分:-2)

-(?<keyword>[\w. ]+)=(?<phrase>.*?)(?=-[\w. ]+=|$)

相关问题