如果我有一行以
结尾版本是:1.10.0.1001
我正在寻找一个正则表达式来获取版本号,但无法弄清楚如何获取“版本为:”之后的字符串
答案 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:”,并且会在其后面加任意数量的字符