眼若星辰,用正則檢驗四則運算

正則詳細介紹及教程

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+)則表示的出現前面一個()裏面的內容或者是出後面一個()裏面的內容
以上是我對本次正則表達式用法的簡單介紹,正則表達式的功能遠遠不止這些,其他的我目前不說明了。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章