我有这个字符串
hey {Bobby|Apple|Peter}, nice to meet you {David}
和这个正则表达式:
(\{(\w+)(\|(\w+))*)\}
答案:
Bobby
Peter
David
然而,它没有得到“Apple”,我怎么能解决这个问题呢?
谢谢!
答案 0 :(得分:1)
重复不适用于群组。相反,尝试迭代地在字符串上使用find。可能最好先过滤掉{Bobby|Apple|Peter}
,从中获取名称,然后找到{David}
并从中获取名称。如果你继续使用正则表达式,这将是两个发现。或者一个find
,然后从结果中|
分割。
查找的正则表达式:\{(\w+(?:\|\w+)*)\}
,然后使用组1(大括号内的所有)并拆分结果。
答案 1 :(得分:0)
您能否展示重现此问题的完整最小代码?问题可能在于您如何迭代捕获的组。