正则表达式仅获得单词{word}单词{word}单词的序列,但不能两个相似地关闭

时间:2019-06-07 13:16:59

标签: regex

我只需要获得单词{word}单词{word}单词(以单词而不是{word}结尾)的序列,并且永远不会有两个单词close(单词word)或接下来的两个{word}({word} {word })

我已经有了这个正则表达式:https://regex101.com/r/yI64KQ/13

[已解决]

感谢Norbert Incze,在此other question中,最终的正则表达式为: ([A-zÀ-ú]+([^\S\n]+\{[^}]*\}[^\S\n]+[A-zÀ-ú]+)+)

这很好用!感谢所有帮助我的人。

1 个答案:

答案 0 :(得分:1)

([^\r\n\t])+组正在拾取任意文本,直到下一个{,包括空格和更多单词,甚至还有}。您可能要删除它。

\{...\}内部,您接受[^}]*,这意味着任意字符,而您可能想要的是限制性的内容,例如您对该单词的第一个定义。

为什么最后一个[...]块呢?鉴于您的问题,我看不到它会增加什么。

顺便说一下,很酷的网站。为了使这个答案本身有意义,这是您单击链接时使用的RE:

([A-zÀ-ú]+(\s+\{[^}]*\}\s+[A-zÀ-ú]+)([^\r\n\t])+)[^\s.:;?!]