# 正则表达式用例
# 1. 格式化HTTP消息
/**
* 格式化HTTP消息
* 404 NOT FOUND -> { statusCode: 404, message: "NOT FOUND" }
* @param message
* @return HttpMessageFormatter
*/
public HttpMessageFormatter formatHttpMessage(String message) {
HttpMessageFormatter fmt = new HttpMessageFormatter(0, message);
if (!isBlank(message)) {
Pattern r = Pattern.compile("^(\\d+)\\s+(.+)");
Matcher m = r.matcher(message);
if (m.find()) {
// fmt.setStatusCode(Integer.valueOf(m.group(1)));
fmt.setStatusCode(Integer.parseInt(m.group(1)));
fmt.setMessage(m.group(2));
}
}
return fmt;
}
public static boolean isBlank(String input) {
return input == null || input.trim().isEmpty();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
HttpMessageFormatter
class HttpMessageFormatter {
private int statusCode;
private String message;
public HttpMessageFormatter() {}
public HttpMessageFormatter(int statusCode, String message) {
this.statusCode = statusCode;
this.message = message;
}
public int getStatusCode() {
return statusCode;
}
public String getMessage() {
return message;
}
public void setStatusCode(int statusCode) {
this.statusCode = statusCode;
}
public void setMessage(String message) {
this.message = message;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 2. 匹配字符串中所有数字
public class RegexTest {
public static void main(String[] args) {
String str = "1234567890";
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 3.判断输入是否满足某种格式
public boolean isEmail(String input) {
if (isBlank(input)) return false;
Pattern r = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+");
return r.matcher(input).matches();
}
1
2
3
4
5
2
3
4
5
← 正则表达式 Spring框架简介 →