Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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_String_Regex Group_Regex Greedy - Fatal编程技术网

Java 用于从字符串捕获数字的正则表达式

Java 用于从字符串捕获数字的正则表达式,java,regex,string,regex-group,regex-greedy,Java,Regex,String,Regex Group,Regex Greedy,我有这个字符串: String filename = 20190516.BBARC.GLIND.statistics.xml; 如何在不使用子字符串的情况下获取字符串的第一部分(数字)。在这里,我们可能只想使用捕获组收集数字,如果愿意,我们可以稍后添加更多边界,可能使用一个简单的表达式: ([0-9]+) 例如,如果所需的数字位于输入的开头,我们可能希望添加一个起始字符作为左边界: ^([0-9]+) 或者,如果我们的数字后面总是跟一个,我们可以用它来绑定: ^([0-9]+)\. 如果

我有这个字符串:

String filename = 20190516.BBARC.GLIND.statistics.xml;

如何在不使用子字符串的情况下获取字符串的第一部分(数字)。

在这里,我们可能只想使用捕获组收集数字,如果愿意,我们可以稍后添加更多边界,可能使用一个简单的表达式:

([0-9]+)
例如,如果所需的数字位于输入的开头,我们可能希望添加一个起始字符作为左边界:

^([0-9]+)
或者,如果我们的数字后面总是跟一个
,我们可以用它来绑定:

^([0-9]+)\.
如果有必要,我们还可以在后面添加一个大写字母,以加强我们的右边界并继续此过程:

^([0-9]+)\.[A-Z]

正则表达式 如果不需要此表达式,可以在中对其进行修改或更改

正则表达式电路 可视化正则表达式:

测验 演示
const regex=/([0-9]+)(.*)/gm;
const str=`20190516.BBARC.GLIND.statistics.xml`;
常量subst=`1`;
//被替换的值将包含在结果变量中
const result=str.replace(regex,subst);

log('替换结果:',结果)要使用正则表达式提取字符串的一部分或多部分,我更喜欢定义组

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class B {

    public static void main(String[] args) {
        String in="20190516.BBARC.GLIND.statistics.xml";
        Pattern p=Pattern.compile("(\\w+).*");
        Matcher m=p.matcher(in);
        if(m.matches())
            System.out.println(m.group(1));
        else
            System.out.println("no match");
    }

}
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class B {

    public static void main(String[] args) {
        String in="20190516.BBARC.GLIND.statistics.xml";
        Pattern p=Pattern.compile("(\\w+).*");
        Matcher m=p.matcher(in);
        if(m.matches())
            System.out.println(m.group(1));
        else
            System.out.println("no match");
    }

}