1

到目前为止..我有这个测试字符串:

Hello {John|Paul|Cindy}, hows {david}?

我的表达是:

(\{\w+\})

但是,它只返回大卫。我希望能够抓住约翰、保罗和辛迪。只有 0 或 2 个竖线。有任何想法吗?

谢谢

4

2 回答 2

2

如果不是某种竞争,我会简单地使用两个正则表达式:

{[\w|]+}抓取每对大括号及其内容,然后在每个结果\w+上提取单词。

仅使用一个正则表达式就不能简单了。

于 2012-07-03T23:46:24.630 回答
1

如果只有 0 或 2 个竖线:

(\{\w+\}|\{\w+\|\w+\|\w+\})

对于 0 个或更多:

(\{\w+(\|\w+)*\})
于 2012-07-03T23:28:32.390 回答