匹配第二或中间词援助

时间:2014-03-29 17:26:48

标签: regex

我需要匹配开头,并结束多行。这个想法是让结束可选,不知道如何做到这一点。例子是

bs-messages-child (match messages)
bs-inbox (match inbox)
bs-followers-child (match followers)

我能做的最好的事情是'bs-(.*)-?(.*)' - 它仍然将-child放在较长的字符串上。是否有可能匹配这种模式w regex?

2 个答案:

答案 0 :(得分:1)

你可以使用否定的类:

bs-([^-\s]+)(?:-([^-\s]+))?

regex101 demo

[^-\s]+将匹配非短划线字符和非空格字符。

答案 1 :(得分:1)

您可以使用以下内容:

^bs-(.*?)(?:-child)?$