Regex Java版本号的正则表达式

Regex Java版本号的正则表达式,regex,Regex,我有一个正则表达式,如下所示: (?!\.)(\d+(\.\d+)+)(?![\d\.])$ 它将字符串验证为:1.0.0软件版本 我如何编辑它才能使以下字符串同样有效 1.0.0-SNAPSHOT 1.0.0.RC 1.0.0版本 字母数字字符串可以跟在版本号后面,但只有在有。或者-只有一个。只需使用这个不太复杂的正则表达式 /(\d.){2}\d(?=((-|\.)[A-Z]+)|$)/g 只需使用这个不太复杂的正则表达式 /(\d.){2}\d(?=((-|\.)[A-Z]+)|$)/

我有一个正则表达式,如下所示:

(?!\.)(\d+(\.\d+)+)(?![\d\.])$
它将字符串验证为:1.0.0软件版本

我如何编辑它才能使以下字符串同样有效

1.0.0-SNAPSHOT 1.0.0.RC 1.0.0版本
字母数字字符串可以跟在版本号后面,但只有在有。或者-只有一个。

只需使用这个不太复杂的正则表达式

/(\d.){2}\d(?=((-|\.)[A-Z]+)|$)/g

只需使用这个不太复杂的正则表达式

/(\d.){2}\d(?=((-|\.)[A-Z]+)|$)/g

为[a-Z]+或-[a-Z]+部件添加非捕获组,并将其设置为可选

(?!\.)(\d+(\.\d+)+)(?:[-.][A-Z]+)?(?![\d.])$
(?!\.)(\d+(\.\d+)+)(?:[-.]([A-Z]+))?(?![\d.])$
如果要捕获前面带有点或连字符的字符串部分大写字母,请将非捕获组设为捕获组

(?!\.)(\d+(\.\d+)+)([-.][A-Z]+)?(?![\d.])$
仅捕获字母并将其重排到单独的组中


为[a-Z]+或-[a-Z]+部件添加非捕获组,并将其设置为可选

(?!\.)(\d+(\.\d+)+)(?:[-.][A-Z]+)?(?![\d.])$
(?!\.)(\d+(\.\d+)+)(?:[-.]([A-Z]+))?(?![\d.])$
如果要捕获前面带有点或连字符的字符串部分大写字母,请将非捕获组设为捕获组

(?!\.)(\d+(\.\d+)+)([-.][A-Z]+)?(?![\d.])$
仅捕获字母并将其重排到单独的组中

用于java的替换\to\\


对于java replace\to\\

,为了防止有人需要捕获语义版本的每个组件,此正则表达式将帮助完成以下操作:

^(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:[-.]([A-Z]+))?(?![\d.])$

主修课在第1组,辅修课在第2组,增量课在第3组,限定词在第4组

为了防止有人需要捕获语义版本的每个组件,此正则表达式将有助于做到这一点:

^(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:[-.]([A-Z]+))?(?![\d.])$

主修课在第1组,辅修课在第2组,增量课在第3组,限定词在第4组

我已经编辑了我的正则表达式。。。请看一看我已经编辑了我的正则表达式。。。看看有什么区别?!\。把绳子绑起来?它是否仅在使用$时才具有相关性?它声明要匹配的数字不应以点开头,但在添加例如1.0.0-SNAPSHOT时,文本仍然构成匹配的一部分,即使数字前面有。?有什么区别?!\。把绳子绑起来?它是否仅在使用$时才具有相关性?它声明将要匹配的数字不应以点开头,但在添加例如1.0.0-SNAPSHOT时,文本仍然构成匹配的一部分,即使数字前面有。?