我有一个看起来像的字符串:
this is a string [[and]] it is [[awesome|amazing]]
到目前为止,我有以下正则表达式:
(?<mygroup>(?<=\[\[).+?(?=\]\]))
我基本上试图捕捉括号内的所有内容。但是,我需要添加另一个条件:如果匹配的结果包含管道分隔符,则只返回管道分隔符右侧的单词。如果没有管道,则只返回括号内的所有内容。
鉴于上面的示例,我正在寻找的解析结果如下所示:
和 惊人
赞赏任何意见。
答案 0 :(得分:2)
(?<mygroup>(?<=\[\[)([^|\]]*|)?([^|]+?)(?=\]\]))
答案 1 :(得分:1)
答案 2 :(得分:0)
来自regex信息页:
巨大的力量和表现力 现代正则表达式可以 引诱容易上当的人 - 或者说是蛮干的人 - 试图在每一个上使用正则表达式 他们遇到的与字符串相关的任务。
我的建议:抓住括号之间的内容并在之后解析它。
正则表达式不是一切的答案。愿你那些追随你的人免于破译你提出的正则表达式。