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

public class Firstwork {
    public static void main(String[] agrs){
        Scanner input = new Scanner(System.in);
        System.out.println("plese input a expression:");
        for (int i = 0; i < 5; i++) {//一次性验证五次四则运算表达式
            String expression = input.next();
            System.out.println(expression);
           **// String re2 =  "(\\(-[1-9]\\d*\\)|-[1-9]\\d*|[1-9]\\d*)([+-/\\*](\\(-[1-9]\\d*\\)|[1-9]\\d*|\\(-0\\)|0))*";//方法一
           //String re = "((\\(-\\d+\\))|(\\d+)|(-\\d+))(([\\+\\-\\*/]\\(-\\d+\\))|([\\+\\-\\*/]\\d+))+";
            //验证四则运算表达式的正则表达式
            String re = "(−\\d+)|(\\d+)|(-\\d+))((\\d+)|([\\+\\-\\*\\/]\\d+))+";//方法二**
            if (expression.matches(re)) {
                    System.out.println("ok");//表达式正确
            } else {
                System.out.println("nononono");//表达式错误
            }
        }
    }
}

在这里插入图片描述
//String re = "((\(-\d+\))|(\d+)|(-\d+))(([\+\-\/]\(-\d+\))|([\+\-\/]\d+))+";
下面我来说明一下正则表达式的用法(以上面那个为例子):
1.\d 表示的是0-9的数字
2.\d+表示0-9的数字至少出现一次
3.\d*表示0-9的数字出现0次以上
4.[]里面的东西至少出现一个,两个\是转义
5.|这个表示或者的意思,例如(\(-\d+\))|(\d+)则表示的出现前面一个()里面的内容或者是出后面一个()里面的内容
以上是我对本次正则表达式用法的简单介绍,正则表达式的功能远远不止这些,其他的我目前不说明了。。