到目前为止..我有这个测试字符串:
Hello {John|Paul|Cindy}, hows {david}?
我的表达是:
(\{\w+\})
然而,它只返回大卫。我希望能够抓住John,Paul和Cindy。 只有0或2个垂直条。任何想法?
由于
答案 0 :(得分:2)
如果不是某种竞争,我只会使用两个正则表达式:
{[\w|]+}
抓住每对花括号及其内容,然后在每个结果上\w+
提取单词。
只使用一个正则表达式,你不能简单。
答案 1 :(得分:1)
如果只有0或2个竖条:
(\{\w+\}|\{\w+\|\w+\|\w+\})
0或更多:
(\{\w+(\|\w+)*\})