正则表达式:如何匹配[]某些东西| []一些?

时间:2015-05-30 01:31:10

标签: regex

我正在尝试编写一个可以匹配此

的正则表达式
  

[]东西|一些| ...

所以基本上需要匹配单词和/或数组字符[]并匹配任意数量的选项/类型(可能是2或更多)

我试试这个

(\[?\]?\w+\||\|\[?\]?\w+)

但是这会失败,因为如果匹配|字符与第一个正则表达式无法返回以匹配第二个选项|开头的|\|\[?\]?\w+字符

我想只捕获像这样的表达式中的类型

function blah(a: []something|[]some|blah)

仅匹配

1) []something
2) []some
3) blah

感谢

1 个答案:

答案 0 :(得分:0)

此正则表达式将匹配[]something|some|anothersomething|some|option|op

等字符串
(\[\])?\w+(\|(\[\])?\w+)*

基本上我们一开始就在寻找可选的[]。但是他们需要在那里或两者都缺席(这就是为什么他们在一个团体(...)中)。 然后我们至少有一个单词字符后跟零个或多个管道符号后跟一个单词(例如|some|option|a)。

请注意,字符的转义可能取决于您喜欢的正则表达式语言的正则表达式语法。您可能需要使用\(\)来撤消该群组和/或可能需要取消引用管道角色|。在某些语言中,此符号表示未引用时的关系,但我是。 []也是如此。如果您指定了您正在使用的语言或语法,则可能会有所帮助。

如果事情不清楚,只需要澄清。