c# - 创建包含文本、数字和 url 组合的正则表达式

标签 c# regex regex-group

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

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 个值由 :aplhnumericText2www.stackoverflow.com 分隔。

最佳答案

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

^[\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
  • $:结束

关于c# - 创建包含文本、数字和 url 组合的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66114397/

相关文章:

c# - 设计一个可变类,在它被使用后变成不可变的

javascript - 正则表达式:必须至少有一个数字和字母,但不能有其他字符/空格

Python 正则表达式处理多个换行符

c# - 为什么此 LINQ 表达式返回只有一项的子列表

c# - 套接字发送客户端列表

JavaScript Unicode Regex - 字符类中的范围乱序

python - 正则表达式 "subtraction"方程的匹配模式

python - 用于捕获和替换字符串中除特殊模式外的所有数字的 RegEx

python - 科多斯 & "cannot refer to open group"

c# - EmguCV 捕获 rtsp ip 摄像头流 ffmpeg