我正在尝试为以下组合创建正则表达式
Alphanumerictext1:1234:12:124:aplhnumericText2:www.stackoverflow.com
在上述格式中,即使文本具有字母数字(第一个字段)或以 : 分隔的增量值,它也应该验证。
以下是一些有效的示例:
Alphanumerictext1
Alphanumerictext1:1234
Alphanumerictext1:1234:12
Alphanumerictext1:1234::124:aplhnumericText2
Alphanumerictext1::12
Alphanumerictext1:1234:12:124:aplhnumericText2:www.stackoverflow.com
为此编写了如下的部分正则表达式 ^([\w\s\.]+(:\d*){0,3})$
但无法满足最后 2 个值由 :aplhnumericText2
和 www.stackoverflow.com
分隔。
最佳答案
您可以使用此正则表达式来验证提供的所有示例:
^[\w\h.]+(?:(?::\d*){1,3}(?::\w*(?::\w+(?:\.\w+)*)?)?)?$
正则表达式详细信息:
^
:开始[\w\h.]+
:(?:
:启动非捕获组#1(?::\d*){1,3}
:匹配:
后跟 0+ 数字。匹配 1 到 3 次出现的此内容。(?:
:启动非捕获组#2:\w*
:匹配:
后跟 0+ 个单词字符(?:
: 启动非捕获组 #3:\w+(?:\.\w+)*
:匹配:
后跟主机名
)?
:结束可选的非捕获组#3
)?
:结束可选的非捕获组#2
)?
:结束可选的非捕获组#1$
:结束
关于c# - 创建包含文本、数字和 url 组合的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66114397/