正则表达式

it2022-05-05  107

正则表达式其实就是用于操作字符串的一个规则,使用了特殊的符号表示

正则表达式对字符串的操作:

匹配:matches();

预定义字符:

. 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字:[^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s]\w 单词字符:[a-zA-Z_0-9]——包括了小写字母,大写字母,下划线,数字0-9 \W 非单词字符:[^\w]

注意:任何预定义字符没有加上数量词之前都只能匹配一个字符

public class Demo1{ public static void main(String[] args){ System.out.println("任意字符:"+("1".matches("."))); System.out.println("数字字符:"+("12".matches("\\d\\d")));//“\”都是有特殊含义的,所以要\\d System.out.println("非数字字符:"+("@".matches("\\D"))); System.out.println("空白字符:"+("\r".matches("\\s"))); System.out.println("非空白字符:"+("\n".matches("\\S"))); System.out.println("单词字符:"+("#".matches("\\w"))); System.out.println("非单词字符:"+("a".matches("\\W"))); } }

运行结果:

任意字符:true 数字字符:true 非数字字符:true 空白字符:true 非空白字符:false 单词字符:false 非单词字符:false

数量词:greedy 数量词 X?X 一次或一次也没有 X*X 零次或多次 X+X 一次或多次 X{n}X 恰好n次 X{n,}X 至少n次 X{n,m}X 至少n次,但是不超过m次

class Demo2{ public static void main(String[] args){ System.out.println("?一次或一次也没有:"+("".matches("\\d?"))); System.out.println("*零次或多次:"+("".matches("\\d*"))); System.out.println("+至少出现一次:"+("".matches("\\d+"))); System.out.println("{}恰好出现n次:"+("12345".matches("\\d{5}"))); System.out.println("{n,}至少要出现指定次数:"+("1234".matches("\\d{5,}"))); System.out.println("{n,m}出现次数范围在n-m次:"+("123".matches("\\d{2,5}"))); } }

运行结果:

?一次或一次也没有:true *零次或多次:true +至少出现一次:false {}恰好出现n次:true {n,}至少要出现指定次数:true {n,m}出现次数范围在n-m次:true

范围词:字符类 [abc] a、b或c(简单类) [^abc] 任何字符,除了a、b或c(否定) [a-zA-Z] a到z或A到Z,两头的字母包括在内(范围) [a-d[m-p]] a到d或m-p:[a-dm-p](并集) [a-z&&[def]] d、e或f(交集)注意:范围词里面不管内容有多长,没有数量词的配合都只能匹配一个字符。

class Demo2{ public static void main(String[] args){ System.out.println("出现的字符只能是:"+("d".matches("[abc]"))); System.out.println("出现的字符除了ab::"+("d".matches("[^ab]"))); System.out.println("出现的字符只能是a-z和A-Z、&、#:"+("A".matches("[a-zA-Z#&]"))); System.out.println("出现的字符只能是a-z和A-Z:"+("d".matches("[a-z[A-Z]]"))); } }

运行结果:

出现的字符只能是:false 出现的字符除了ab::true 出现的字符只能是a-z和A-Z、&、#:true 出现的字符只能是a-z和A-Z:true

转载于:https://www.cnblogs.com/W-q635721368/p/8637907.html


最新回复(0)