使用文本、数字和 url 组合创建正则表达式

Creating a regex with text, number and url combination

我正在尝试为以下组合创建正则表达式

Alphanumerictext1:1234:12:124:aplhnumericText2:www.whosebug.com

在上述格式中,即使文本包含字母数字(第一个字段)或由 : 分隔的增量值,它也应该验证。

下面是几个有效的例子:

Alphanumerictext1
Alphanumerictext1:1234
Alphanumerictext1:1234:12
Alphanumerictext1:1234::124:aplhnumericText2
Alphanumerictext1::12
Alphanumerictext1:1234:12:124:aplhnumericText2:www.whosebug.com

为此编写了如下所示的部分正则表达式 ^([\w\s\.]+(:\d*){0,3})$ 但无法满足由 :aplhnumericText2www.whosebug.com.

分隔的最后 2 个值

您可以使用此正则表达式来验证提供的所有示例:

^[\w\h.]+(?:(?::\d*){1,3}(?::\w*(?::\w+(?:\.\w+)*)?)?)?$

RegEx Demo

正则表达式详细信息:

  • ^: 开始
  • [\w\h.]+:
  • (?:: 启动非捕获组#1
    • (?::\d*){1,3}:匹配:后跟0+个数字。匹配出现 1 到 3 次。
    • (?:: 启动非捕获组 #2
      • :\w*:匹配:后面的0+个单词字符
      • (?:: 启动非捕获组 #3
        • :\w+(?:\.\w+)*:匹配 : 后跟主机名
      • )?: 结束可选非捕获组#3
    • )?: 结束可选的非捕获组#2
  • )?: 结束可选非捕获组#1
  • $:结束