根据以下值
[AAMP-PLAYER]aamp pos: [14..187..202..2196879032]
我想获取最后一个号码2196879032
有时值将为-1
[AAMP-PLAYER]aamp pos: [14..187..202..-1]
我如何使用正则表达式方法提取最后一位数字而不是拆分方法
答案 0 :(得分:2)
您可以将字符串末尾的最后一个(可能为负数)匹配,就在结束]
之前:
(\-?\d+)\]$
答案 1 :(得分:0)
如果没有跟其他任何数字跟随(紧随其后,而不是立即跟随),则该数字为最后一个数字。
(\-?\d+)(?!.*\d)
答案 2 :(得分:0)
我们可以在此处尝试使用String#replaceAll
选项:
String input = "[AAMP-PLAYER]aamp pos: [14..187..202..2196879032]";
String num = input.replaceAll("^.*\\.\\.(-?\\d+).*$", "$1");
System.out.println(num);
此打印:
2196879032
答案 3 :(得分:0)
如果不使用RegEx
或split
,则可以使用str.substring(str.lastIndexOf("..") + 2, str.length() - 1)
进行操作,其中str
具有您的String
值,例如
public class Main {
public static void main(String[] args) {
String str = "[AAMP-PLAYER]aamp pos: [14..187..202..2196879032]";
System.out.println(str.substring(str.lastIndexOf("..") + 2, str.length() - 1));
str = "[AAMP-PLAYER]aamp pos: [14..187..202..-1]";
System.out.println(str.substring(str.lastIndexOf("..") + 2, str.length() - 1));
}
}
输出:
2196879032
-1