gpt4 book ai didi

java - 正则表达式提取软件版本

转载 作者:行者123 更新时间:2023-11-30 07:12:37 26 4
gpt4 key购买 nike

我尝试使用这个正则表达式 (?!\\.)(\\d+(\\.\\d+)+)([-.][a-zA-Z]+)?(?! [\\d.])使用Java代码从短文本中提取软件版本号,如下:

... Dashbuilder before 0.6.0.Beta allows remote  ... another version 0.6.1 which ...

但是,我只能提取不带字母 Beta 的 0.6.00.6.1

更新有时,软件版本带有数字和字符。我如何更新我的正则表达式才能提取软件版本,例如带字母的数字 (0.6.0.beta) 或仅数字 (0.6.1),另外,如果我想使用正则表达式提取位于版本号之前的术语 before 该怎么办?

最佳答案

您可以使用

((?:\d.)+)

测试字符串

... Dashbuilder before 0.6.0.Beta allows remote  ...

比赛信息

MATCH 1
1. [23-29] `0.6.0.`

演示:https://regex101.com/r/pW8gO5/1

<小时/>

编辑

要在0.6.0.Beta之前提取,请使用:

(\b\w+\s(?:\d.)+\w+\b)

测试字符串

... Dashbuilder before 0.6.0.Beta allows remote  ...

比赛信息

MATCH 1
1. [16-33] `before 0.6.0.Beta`

演示:https://regex101.com/r/pW8gO5/2

<小时/>

编辑2

您可以使用?来匹配可选的before单词:

((?:before)?\s(?:\d.)+\w+\b)

测试字符串

... Dashbuilder before 0.6.0.Beta allows remote  ...

... Dashbuilder 0.6.0.Beta allows remote ...

比赛信息

MATCH 1
1. [16-33] `before 0.6.0.Beta`
MATCH 2
1. [69-80] ` 0.6.0.Beta`

演示:https://regex101.com/r/pW8gO5/3

<小时/>

编辑3

也进行了更新以匹配版本。

((?:before)?\s(?:[\d.])+[\w-]+)\b

测试字符串

... Dashbuilder before 0.6.0.Alpha allows remote  ...
... Dashbuilder before 0.6.0.Beta allows remote ...
... Dashbuilder before 0.6.0.Beta allows remote ...
... Dashbuilder before 0.6.0 allows remote ...
... Dashbuilder before 0.6.0.SNAPSHOT allows remote ...
... Dashbuilder before 0.6.0.RC allows remote ...
... Dashbuilder before 0.6.0-RELEASE allows remote ...

比赛信息

MATCH 1
1. [16-34] `before 0.6.0.Alpha`
MATCH 2
1. [70-87] `before 0.6.0.Beta`
MATCH 3
1. [123-140] `before 0.6.0.Beta`
MATCH 4
1. [176-188] `before 0.6.0`
MATCH 5
1. [224-245] `before 0.6.0.SNAPSHOT`
MATCH 6
1. [281-296] `before 0.6.0.RC`
MATCH 7
1. [332-352] `before 0.6.0-RELEASE`

演示:https://regex101.com/r/pW8gO5/4

关于java - 正则表达式提取软件版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38966282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com