Java正则表达式如何从字符串获取版本?

问题描述 投票:0回答:1

А 需要正则表达式来搜索表格中的一行中的版本:

0.6.9b-version   -    0.6.9b
v0.6.99 - 0.6.99
v01.23.97 - 01.23.97
v01.23.97a-release - 01.23.97a
v1.23.97a-release - 1.23.97a

左边是某种初始线,右边是你需要得到的。

我很困惑把它扔进配置器,但我对正则表达式的了解还不够

我结束了

(\d[\w.()]+?[a-z])

但它执行镜像操作,相反删除了我需要留下的内容

java regex
1个回答
0
投票

图案:

(v)?([0-9]+(\\.[0-9]+)*[a-z]?)(-\\w+)?

import java.util.regex.*;

public class Main {
    public static void main(String[] args) {
        String[] lines = { "0.6.9b-version", "v0.6.99", "v01.23.97", "v01.23.97a-release", "v1.23.97a-release" };
        Pattern pattern = Pattern.compile("(v)?([0-9]+(\\.[0-9]+)*[a-z]?)(-\\w+)?");

        for (String line : lines) {
            Matcher matcher = pattern.matcher(line);
            if (matcher.matches()) {
                System.out.println(matcher.group(2));  // Group 2 contains the version number
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.