Java正则表达式获取所有数字
我需要从字符串中检索所有数字,例如: a:1 | b=2;c=3.2/d=4,2 我想得到这个结果: 1. 2. 3.2 4,2 所以,我不知道如何在Java上的正则表达式中这样说 事实上,我有:Java正则表达式获取所有数字,java,regex,Java,Regex,我需要从字符串中检索所有数字,例如: a:1 | b=2;c=3.2/d=4,2 我想得到这个结果: 1. 2. 3.2 4,2 所以,我不知道如何在Java上的正则表达式中这样说 事实上,我有: ?您可以将捕获组用于: 解释 [a-z]字边界,匹配字符a-z [:=]匹配:或= \h*匹配0+水平空白字符 捕获组1 \d+?:[,]\d+?将1+个数字与可选的小数部分匹配。或 近群 | 比如说 String regex = "[a-z][:=]\\h*(\\d+(?:[.,]\\d+)?)";
?您可以将捕获组用于: 解释 [a-z]字边界,匹配字符a-z [:=]匹配:或= \h*匹配0+水平空白字符 捕获组1 \d+?:[,]\d+?将1+个数字与可选的小数部分匹配。或 近群 | 比如说
String regex = "[a-z][:=]\\h*(\\d+(?:[.,]\\d+)?)";
String string = "a: 1 | b=2 ; c=3.2 / d=4,2";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出
1
2
3.2
4,2
您可以将捕获组用于: 解释 [a-z]字边界,匹配字符a-z [:=]匹配:或= \h*匹配0+水平空白字符 捕获组1 \d+?:[,]\d+?将1+个数字与可选的小数部分匹配。或 近群 | 比如说
String regex = "[a-z][:=]\\h*(\\d+(?:[.,]\\d+)?)";
String string = "a: 1 | b=2 ; c=3.2 / d=4,2";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出
1
2
3.2
4,2
您可能需要一个正则表达式,如\d?:[,]\d?那 找到一个数字 后面的四个点/逗号+其他数字 多位数版本为\d+?:[,]\d+
您可能需要一个正则表达式,如\d?:[,]\d?那 找到一个数字 后面的四个点/逗号+其他数字 多位数版本为\d+?:[,]\d+ 你可以用
/\d+(?:[.,]\d+)?/g
你可以用
/\d+(?:[.,]\d+)?/g
您可以按如下方式进行操作:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Test
String s = "a: 1 | b=2 ; c=3.2 / d=4,2";
showNumbers(s);
}
static void showNumbers(String s) {
Pattern regex = Pattern.compile("\\d[\\d,.]*");
Matcher matcher = regex.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出:
您可以按如下方式进行操作:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Test
String s = "a: 1 | b=2 ; c=3.2 / d=4,2";
showNumbers(s);
}
static void showNumbers(String s) {
Pattern regex = Pattern.compile("\\d[\\d,.]*");
Matcher matcher = regex.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出:
您可以共享代码吗?您可以共享代码吗?实际上这是结果:[,|,;,/,]:/+++但是您可以删除起始\\b实际上这是结果:[,|,;,/,]:/+++但是您可以删除起始\\b