对于以下字符串,如果字符串包含mainline,则尝试提取“mainline”,如果不包含mainline,则提取末尾的数字。我使用的是Java。
例如,对于下面的字符串,我只需要末尾的数字
Solaris10NBngp-bwm1.1.X // want 1.1.x
Solaris10NBbytel2.0.0.0x // want 2.0.0.0x
Solaris10NBbwm1.2.X // want 1.2.X
Solaris10NBoam_bwm1.4.0.X // want 1.4.0X
Solaris10NBoam1.7.X // want 1.7.X主线示例:
Solaris10NBngp-bwm_mainline // want mainline
LinuxNBdaypass_mainline // want mainline
LinuxNBngp_mainline // want mainline是否可以使用正则表达式,如果可以,是否有人知道如何执行此操作?:-)
发布于 2011-10-28 20:34:56
Solaris10NBngp-bwm1.1.X // want 1.1.x
Solaris10NBbytel2.0.0.0x // want 2.0.0.0x
Solaris10NBbwm1.2.X // want 1.2.X
Solaris10NBoam_bwm1.4.0.X // want 1.4.0X
Solaris10NBoam1.7.X // want 1.7.X对于上述输入,
expectedString = yourString.replaceAll("[^.]+(\\d+\\.)","$1");发布于 2011-10-28 20:30:59
如果字符串始终以Solaris10NB开头,请尝试以下表达式:Solaris10NB[\w\-]+(\d.*)。
然后使用Matcher#group(1)提取第一个组。
发布于 2011-10-28 20:31:57
尝试此正则表达式
([0-9.]+x) +.*$注意:假设注释是字符串的一部分
否则
[0-9.]+x)$https://stackoverflow.com/questions/7929236
复制相似问题