public class TestDemo {
public static void main(String [] args) {
String str = "123" ;
System.out.println(isNumber(str));
}
public static boolean isNumber(String temp) {
char data [] = temp.toCharArray();
for (int x = 0 ; x < data.length ; x ++ ) {
if (data[x] > '9' || data[x] < '0') {
return false ;
}
}
return true;
}
}
public class TestDemo {
public static void main(String [] args) {
String str = "123" ;
System.out.println(str.matches("\\d+"));
}
}
java.util.regex.Pattern 中定义正则标记
字符 | 匹配 |
---|---|
x | 字符 x |
\ \ | 反斜杠 |
\ t | 制表符 |
\ n | 换行 |
字符集 | 匹配 |
---|---|
[abc] | 表示字符a,b,c中任意一位 |
[^abc] | 表示不是字符 a,b,c 中任意的一位 |
[a-z] | 所有的小写字母 |
[A-Z] | 所有的大写字母 |
字符集表达式 | 匹配 |
---|---|
. | 任意一位的字符 |
\d | 匹配一位数字“[0-9]"(在代码中两杠等于一个杠) |
\D | 不匹配数字 [ ^0-9 ] |
\s | 任意的空白字符 (\t \n ……) |
\S | 任意的非空白字符 |
\w | 表示任意字母、数字、下划线 [ a-zA-Z_0-9] |
\W | 表示非字母、数字、下划线 [ ^a-zA-Z_0-9] |
符号 | 匹配 |
---|---|
^ | 正则的开始 |
$ | 正则的结束 |
public class TestDemo {
public static void main(String [] args) {
String str = "Mirror is niubi" ;
String regex = "[^a-z]" ; // 正则
System.out.println(str.replaceAll(regex,""));
}
}
将不是小写的字母用空字符代替
public class TestDemo {
public static void main(String [] args) {
String str = "Mirror12342is1231niu123123bi" ;
String regex = "\\d+" ; // 正则 1个以上的数字
String result [] = str.split(regex); // 数组
for (int x = 0; x < result.length; x++) {
System.out.println(result[x]);
}
}
}
按照数字为条件分隔字符,并被分隔的字符串存入数组中
public class TestDemo {
public static void main(String [] args) {
String str = "10.1" ;
String regex = "\\d+(\\.\\d+)?" ; // 正则 小数
System.out.println(str.matches(regex));
if (str.matches(regex)) {
System.out.println(Double.parseDouble(str));
// 将str转换为double输出
}
}
}
public class TestDemo {
public static void main(String [] args) {
String str = "192.168.1.1" ;
String regex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" ;
String regexs = (\\d{1,3}\\.){3}\\d{1,3}; //正则简化
System.out.println(str.matches(regex));
if (str.matches(regex)) {
System.out.println(str);
}
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String [] args) throws ParseException {
String str = "2009-01-01" ;
String regex = "\\d{4}-\\d{2}-\\d{2}" ;
System.out.println(str.matches(regex));
if (str.matches(regex)) {
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
System.out.println(date);
}
}
}
public class TestDemo {
public static void main(String [] args) throws ParseException {
String str = "(010)-12345678" ;
// String regex = "(\\d{7,8})|(\\d{3,4}-\\d{7,8})|(\\(\\d{3,4}\\)-\\d{7,8})" ;
String regex = "((\\d{3,4}-)|(\\(\\d{3,4}\\)-)?\\d{7,8})";
System.out.println(str.matches(regex));
}
}
最原始的 第4行 正则是繁琐的,而第5行 正则则是简单的,由于电话号码的前缀是特殊的三种状态:无前缀、有前缀、带括号的前缀;所以我们运用括号来将后两种的前缀状态进行判断,设置了"?" 符号表示正则只使用一次正则。
public class TestDemo {
public static void main(String [] args) throws ParseException {
String str = "hello@word.com" ;
String regex = "[a-zA-Z]?[a-zA-Z0-9_\\.]{0,28}[0-9a-zA-Z]\\@?\\w+\\.?(com|net|cn|gov|edu|org)";
System.out.println(str.matches(regex));
}
}
public class TestDemo {
public static void main(String [] args) throws ParseException {
String str = "hello@word.com" ;
String regex = "\\d+";
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);// 编译正则
String result [] = pattern.split(str); // 拆分字符串
System.out.println(Arrays.toString(result)); //输出结果
}
public class TestDemo {
public static void main(String [] args) throws ParseException {
String str = "1234567" ;
String regex = "\\d+";
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);// 编译正则
Matcher mat = pattern.matcher(str); // 进行正则匹配
System.out.println(mat.matches()); // 匹配结果
}
}