正则表达式处理字符串,输出想要的两个值

NO.000042  2021-03-02

我想用正则表达式提取出来编号42 和日期2021-03-02 ?应该怎么写能输出这两个

 

string str = "NO.000042  2021-03-02";
System.Text.RegularExpressions.Regex match = new System.Text.RegularExpressions.Regex(@"\d{4}-\d{2}-\d{2}|^0000\d{2}$|(\d+){6}");
var list=  match.Matches(str);

已经知道字符串格式了的话,直接用substring分割出来就是了substring(param1,param2)

param1:下标为0开始的起始位置

param2:切割多少个字符

string str = "NO.000042  2021-03-02";
Console.WriteLine(str.Substring(7, 2));//42
Console.WriteLine(str.Substring(11, 10));//2021-03-02


 

代码如下:

public class RegexTest {
    public static void main(String[] args) {
        String str = "NO.000042  2021-03-02";
        //提取日期正则
        String dateRegexStr = "\\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2}";
        //提取NO串中的数字正则
        String numRegexStr = ".[1-9]\\s";
        //将两个正则合并到一起同时满足
        String fullRegexStr = ".[1-9]\\s+\\s+\\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2}";
        Pattern p = Pattern.compile(fullRegexStr);
        Matcher m = p.matcher(str);
        if(m.find()){
            System.out.println(m.group());
        }
    }
}

希望能帮到你

'NO.000042  2021-03-02'.split('  ')[1] //2021-03-02
'NO.000042  2021-03-02'.match(/(?<=(  )).*/g)[0] //2021-03-02
Number('NO.000042  2021-03-02'.split('  ')[0].split('.')[1]) //42
Number('NO.000042  2021-03-02'.split('  ')[0].match(/(?<=(\.)).*/g)[0]) //42