Regex 字符大于1的两个字符之间的正则表达式匹配

Regex 字符大于1的两个字符之间的正则表达式匹配,regex,Regex,以下是我的文字: 378哥伦比亚预测Yr-NB-Q-Columbian\u NB 我需要找到哥伦比亚预测年数或任何碰巧的数据 我当前的正则表达式是:\-(.*)\-。这将返回:-Columbian Forecast Yr-和-Q- 我只想要第一个被退回 如何让正则表达式搜索介于-和-之间且字符数大于1的字符串最好不要返回连字符 谢谢 您可以使用此正则表达式: ^[^-]*-([^-]{2,})- -([^-]+.)- 抓到被俘的第1组 您可以使用此正则表达式: ^[^-]*-([^-]{2,

以下是我的文字:
378哥伦比亚预测Yr-NB-Q-Columbian\u NB

我需要找到
哥伦比亚预测年数
或任何碰巧的数据

我当前的正则表达式是:
\-(.*)\-
。这将返回:
-Columbian Forecast Yr-
-Q-

我只想要第一个被退回

如何让正则表达式搜索介于-和-之间且字符数大于1的字符串最好不要返回连字符


谢谢

您可以使用此正则表达式:

^[^-]*-([^-]{2,})-
-([^-]+.)-
抓到被俘的第1组


您可以使用此正则表达式:

^[^-]*-([^-]{2,})-
-([^-]+.)-


为什么需要
^[^-]*
?我认为只要
-([^-]{2,}-
和第1组就应该很好。是的,它也应该很好,但我不知道这里使用的是哪种正则表达式风格。如果没有
^[^-]*
正则表达式的其余部分也可能会提供多个匹配项。