如果它包含数字或下划线,我希望使用Java拆分字符串 - 但我想在结果中包含数字 - 这可能吗?
例如
“Linux_version”
“Linux3.1.2.x”
我希望将这些字符串拆分为“version”(如果它包含下划线)或者字符串末尾的数字(如果它包含数字) - 例如从上面的第二个字符串 - 我想要“3.1.2.x”
非常感谢任何帮助!
答案 0 :(得分:4)
expectedString = yourString.replaceAll("^[^_0-9]+_?","");
如果您只想删除Linux
或Linux_
,请尝试以下操作:
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] +