RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 819659
Accepted
Kunoichi
Kunoichi
Asked:2020-04-26 18:46:39 +0000 UTC2020-04-26 18:46:39 +0000 UTC 2020-04-26 18:46:39 +0000 UTC

检查版本字符串的正则表达式(如 34.0.3、23.2.*、4.*)

  • 772

我们需要创建一个正则表达式来检查表示应用程序版本的字符串。该字符串的格式为 XYZ,其中 X、Y、Z 可以是任何整数,也可以是 *(X 除外)。* 字符之后,不应超过该行。数字不能以 0 开头。有效字符串示例:

  • 12.2323.2
  • 0.0.3
  • 0.0.0
  • 34.0.3
  • 23.2.*
  • 四个。*

无效字符串示例:

  • 34a.34.1
  • *
  • 34.*.3
  • 57.*。
  • d3.43.3
  • 0004.*
  • 1.02.*

我无法经常这样做。

这不是一项学习任务。

регулярные-выражения
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    Андрей NOP
    2020-04-26T19:08:23Z2020-04-26T19:08:23Z

    天真的实现你想要的:

    ^(0|[1-9]\d*)\.(\*|(0|[1-9]\d*)\.(\*|(0|[1-9]\d*)))(\r)?$
    

    我收到了这样的结论。首先,让我们创建一个正则表达式来检查字符串与模式A.B.C,这很简单:

    ^\d+\.\d+\.\d+(\r)?$
    

    这里\d+- 任何数字序列,\.- 点(必须转义,是的),^- 行的开头,(\r)?$- 行的结尾,考虑到两者\r\n并且简单\n

    此外,可以有一个星号,而不是最后一个数字块,我们将其替换\d+为(\*|\d+)(星号也必须转义):

    ^\d+\.\d+\.(\*|\d+)(\r)?$
    

    此外,星号可以代替最后两个块,与前一个类似,更改\d+\.(\*|\d+)为(\*|\d+\.(\*|\d+)):

    ^\d+\.(\*|\d+\.(\*|\d+))(\r)?$
    

    好吧,仍然要排除带有前导零的数字,即 它是单个零0或非零 + 任意位数[1-9]\d*。\d+我们用设计替换所有三个块(0|[1-9]\d*),我们得到最终版本。

    • 5
  2. Anton Shchyrov
    2020-04-26T19:10:56Z2020-04-26T19:10:56Z
    ^(0|[1-9]\d*)\.(\*|((0|[1-9]\d*)\.(\*|(0|[1-9]\d*))))$
    

    几个解释:

    前导零被此表达式截断0|[1-9]\d*。那些。我们允许一个零或数字 1-9,后跟任意数量的任意数字。

    *我们控制\*|((0|[1-9]\d*)\.(\*|(0|[1-9]\d*)))星号或其他所有内容。

    测试 regex101 https://regex101.com/r/41aBtQ/1

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5