Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式获取所有数字_Java_Regex - Fatal编程技术网

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: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+)?)";
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