用于 API 子域的正则表达式

Regex for API subdomains

本文关键字:正则表达式 API 用于      更新时间:2023-09-26

我想要一个与以下域匹配的正则表达式:

  • dev.api.company.com
  • live.api.company.com
  • test1.dev-api.company.com
  • test2.live-api.company.com
  • yyy.XXXapi.company.com

但在以下方面不匹配:

  • dev-api.company.com
  • live-api.company.com
  • api.company.com
  • XXXapi.company.com

我试过这个:^[a-z]+。[a-z-]*api.company.com$ 但它不起作用,我无法使其工作。你能帮我吗?

我正在使用javascript String.match()函数。

尝试以下正则表达式:

^[a-zA-Z0-9]+'.[^'.]*api'.company'.com$

演示

请考虑以下事项:

if (string.matches("^(dev''.api|live''.api|test''d+)''..*$")) {
    // Accepted subdomain
} else {
    // Nope
}

您可以输入任意数量的选项,用 |

正则表达式的分解:

^ - 开头为

(选项1|选项

2|选项3) - 接受的子域列表

''. - 子域后必须跟一个句点

.*$ 任何其他内容,直到字符串末尾

如果您没有选择的一般经验法则,此解决方案允许您轻松管理接受的子域。

试试这个:

/^[a-z''.''-]{0,}api.company.com$/

针对您的示例进行测试,它有效。