正则表达式获取字符串后面的字符串

时间:2011-11-18 04:20:31

标签: regex

如果我有一行以

结尾

版本是:1.10.0.1001

我正在寻找一个正则表达式来获取版本号,但无法弄清楚如何获取“版本为:”之后的字符串

4 个答案:

答案 0 :(得分:2)

使用parantheses捕获值。 如果您只想将整个版本值放在一个字符串中,这就足够了

if(/version is:(.*)/.test(yourString)) {
    versionNum = RegExp.$1;
}

此处版本号将存储1.10.0.1001

但是如果你想要点之间的个别数字,你将不得不采用这样的方式:

if(/version is:(\d+\.)(\d+\.)(\d+.)(\d+)/.test(yourString)) {
    majorBuild = RegExp.$1;
    minorBuild = RegExp.$2;
    patch = RegExp.$3;
    revision = RegExp.$4;
}

基本上变量将保存这样的值

majorBuild = 1
minorBuild = 10
patch = 0
revision = 1001

干杯!

答案 1 :(得分:0)

使用捕获(括号)。尝试

s/version is:(.*)/\1/g

另外,你使用什么正则表达式引擎?您可能需要逃避冒号,并确定魔法是否开启

或者更好的是,只需删除版本:以及之前的所有内容

s/.*version is://g

答案 2 :(得分:0)

使用java的正则表达式:

System.out.println("abcd version is:1.23.33.444".replaceAll("^(?:.*:)(.*)$","$1"));
System.out.println("abcd version is:1.23.33.444".replaceAll("^(?:.*:)",""));

答案 3 :(得分:0)

没关系,我想通了

(?< = version is :)。*

匹配中不包含“version is:”,并且会在其后面加任意数量的字符