正则详细介绍及教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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+)则表示的出现前面一个()里面的内容或者是出后面一个()里面的内容
以上是我对本次正则表达式用法的简单介绍,正则表达式的功能远远不止这些,其他的我目前不说明了。。