Regex 正则表达式返回自定义字符串

Regex 正则表达式返回自定义字符串,regex,Regex,我在学习正则表达式,我有一个字符串像 grafana-stage.apps.mt-t1.cdc2.gkp.testdatabase.net:443 我只想要结果给我mt-t1.cdc2 我尝试了(.*)-.,但没有得到我想要的结果。有人能解决这个问题吗 再次感谢您的帮助。您可以设计许多表达式来返回mt-t1.cdc2,例如: ^[a-z]+-[a-z]+\.[a-z]+\.([a-z]+-[a-z0-9]+\.[^.]+)\.[a-z.]+:[0-9]{3}$ 将使用捕获组执行此操作: ([

我在学习正则表达式,我有一个字符串像

grafana-stage.apps.mt-t1.cdc2.gkp.testdatabase.net:443
我只想要结果给我
mt-t1.cdc2

我尝试了
(.*)-.
,但没有得到我想要的结果。有人能解决这个问题吗


再次感谢您的帮助。

您可以设计许多表达式来返回
mt-t1.cdc2
,例如:

^[a-z]+-[a-z]+\.[a-z]+\.([a-z]+-[a-z0-9]+\.[^.]+)\.[a-z.]+:[0-9]{3}$
将使用捕获组执行此操作:

([a-z]+-[a-z0-9]+\.[^.]+)
演示 如果要探索/简化/修改该表达式,请在的右上面板中进行说明

测验
const regex=/^[a-z]+-[a-z]+\.[a-z]+\.[a-z]+-[a-z0-9]+\.[a-z.]+:[0-9]{3}$/gm;
const str=`grafana stage.apps.mt-t1.cdc2.gkp.testdatabase.net:443`;
常量subst=`1`;
const result=str.replace(regex,subst);

控制台日志(结果)没有足够的细节,我也认为你是想让我们做你的工作。看看这通常会有很大帮助。谢谢你。我只是想看看如何只捕获字符串的中间部分。我在这个网站上玩。但是当我尝试(.*-.*)时,它仍然会给我字符串的第一部分。看,结果在第1组。你需要捕获什么?从开始到第三和第四个域标签,从结束到第四和第五个域标签,第二个域标签包含一个破折号加上下面的一个?有这么多的可能性。请澄清。