Разделить строку в Java, если она содержит цифру, но включить цифру в результат? - PullRequest
0 голосов
/ 21 октября 2011

Я хочу разделить строку с помощью Java, если она содержит цифру или подчеркивание - но я хочу включить цифру в результат - возможно ли это?

Например.

"Linux_version"
"Linux3.1.2.x"

Я хочу разделить строки, подобные этим, чтобы получить либо «версию», если она содержит подчеркивание, либо цифры до конца строки, если она содержит цифру - например, из второй строки выше - я хочу "3.1.2.x"

Любая помощь очень ценится!

Ответы [ 4 ]

4 голосов
/ 21 октября 2011
expectedString = yourString.replaceAll("^[^_0-9]+_?","");

Если вы просто хотите удалить Linux или Linux_, попробуйте это:

expectedString = yourString.replaceAll("(?i)^linux_?","")
1 голос
/ 21 октября 2011
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"
  }
}
1 голос
/ 21 октября 2011

Это регулярное выражение заменит:

input.replaceAll("^.*?((?<=_)|(?=\\d))", "");
0 голосов
/ 21 октября 2011

Не могу помочь вам с кодом Java, но я думаю, что вы можете использовать следующий шаблон регулярных выражений;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...