如果它包含数字,则在Java中拆分字符串 - 但在结果中包含数字?

时间:2011-10-21 12:02:30

标签: java regex

如果它包含数字或下划线,我希望使用Java拆分字符串 - 但我想在结果中包含数字 - 这可能吗?

例如

“Linux_version”
“Linux3.1.2.x”

我希望将这些字符串拆分为“version”(如果它包含下划线)或者字符串末尾的数字(如果它包含数字) - 例如从上面的第二个字符串 - 我想要“3.1.2.x”

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:4)

expectedString = yourString.replaceAll("^[^_0-9]+_?","");

如果您只想删除LinuxLinux_,请尝试以下操作:

expectedString = yourString.replaceAll("(?i)^linux_?","")

答案 1 :(得分:1)

此正则表达式替换将执行此操作:

input.replaceAll("^.*?((?<=_)|(?=\\d))", "");

答案 2 :(得分:1)

String input = "Linux_version";
//String input = "Linux3.1.2.x";
String result = null;
Pattern p = Pattern.compile("_(.*)|(\\d.*)");
Matcher m = p.matcher();
if (m.find()){
  if (m.group(1) != null){
    result = m.group(1); //"version"
  } else if (m.group(2) != null){
    result = m.group(2); //"3.1.2.x"
  }
}

答案 3 :(得分:0)

无法帮助您使用java代码,但我认为您可以使用以下正则表达式模式;

(_ | [0-9])+ [A-ZA-Z0-9] +