正则表达式 规则

  •  几个常用的字符比对符号  
    方  法
    说  明
    .
    符合任一字符
    /d
    符合09任一个数字字符
    /D
    符合0-9以外的字符
    /s
    符合'/t''/n''/x0B''/f''/r'等空格符
    /w
    符合azAZ09等字符,也就是数字或是字母都符合
    /W
    符合azAZ09等之外的字符,也就是除数字与字母外都符合
  •  
    Character class 
    范  例
    作  用
    [abc]
    符合abc
    [^abc]
    符合「abc」之外的字符
    [a-zA-Z]
    符合az或者是AZ的字符
    [a-d[m-p]]
    ad或者是mp,也可以写成[a-dm-p]
    [a-z&&[def]]
    az并且是def,结果就是def可以符合
    [a-z&&[^bc]]
    az并且不是bc
    [a-z&&[^m-p]]
    az并且不是mp
  •  
    Greedy quantifiers
     
    范  例
    作  用
    X?
    X可出现一次或完全没有
    X*
    X可出现零次或多次
    X+
    X可出现一次或多次
    X{n}
    X可出现n
    X{n,}
    X可出现至少n
    X{n, m}
    X可出现至少n次,但不超过m
    X?
    X可出现一次或完全没有

     
    控制字符
    作用
    //
    反斜杠
    /'
    单引号'
    /"
    双引号"
    /uxxxx
    16进位数指定Unicode字符输出
    /xxx
    8进位数指定Unicode字符输出
    /b
    倒退一个字符
    /f
    换页
    /n
    换行
    /r
    游标移至行首
    /t
    跳格(一个Tab)
     
    格式字符
    作  用
    %%
    在字符串中显示%
    %d
    10进位整数方式输出,提供的数必须是ByteShort IntegerLongBigInteger
    %f
    将浮点数以10进位方式输出,提供的数必须是FloatDoubleBigDecimal
    %e, %E
    将浮点数以10进位方式输出,并使用科学记号,提供的数必须是FloatDoubleBigDecimal
    %a, %A
    使用科学记号输出浮点数,以16进位输出整数部份,以10进位输出指数部份,提供的数必须是FloatDoubleBigDecimal
    %o
    8进位整数方式输出,提供的数必须是ByteShort IntegerLongBigInteger
    %x, %X
    将浮点数以16进位方式输出,提供的数必须是ByteShort IntegerLong、或BigInteger
    %s, %S
    将字符串格式化输出
    %c, %C
    以字符方式输出,提供的数必须是ByteShortCharacter Integer
    %b, %B
    "true""false"输出(或"TRUE""FALSE",使用 %B)。另外,非null值输出是"true"null值输出是"false"
    %t, %T
    输出日期/时间的前置

 

System.out.printf("example:%.2f%n", 19.234);
example:19.23

System.out.printf("example:%6.2f%n", 19.234);
example: 19.23

 

l        /xn匹配ASCII码值等于n的字符,此处的 n 必须是两位的十六进制数。例如,“/x41匹配字符“A”,显然用这种方式可以表示所有非打印字符。注意:“/x041的意义是“/x04所表示的字符后跟字符“1

l        /un匹配Unicode编码等于n的字符,此处的n必须是一个四位的十六进制数。例如/u00A9匹配版权符号(©),[/u4e00-/u9fa5]则匹配任意一个汉字字符。





ds

		String s = "sfdafdas fjdlas kj,  fsk Full = 121 kfdsfdsa fsd=123";
		String str = "Full =";
		if (s.contains(str)){
			int begin = s.indexOf("Full");
			print(begin);
			String ss = s.substring(begin,begin+str.length()+4);
			print(ss);
			print(ss.matches(".{1,5}=.\\d{1,3}"));
		}
		String s = "sfdafdas fjdlas kj,  fsk Full = 12113da a 1kfdsfdsa fsd=123";
		String str = "Full =";
		if (s.contains(str)){
			int begin = s.indexOf("Full");
			print(begin);
			//String ss = s.substring(begin,begin+str.length()+4);
			//print(ss);
			//print(ss.trim().matches(".{1,5}=.\\d+"));
			Pattern p = Pattern.compile("Full\\s=\\s\\d+");
			Matcher m  = p.matcher(s.trim());
			if (m.find()){   //if find, then print 
				String v = m.group();
				int i = Integer.valueOf(v.substring(v.indexOf("=")+2));
				print(i);
			} 
			//25
			//12113
		}


 

### Java 正则表达式规则与使用指南 Java 中的正则表达式(Regular Expression)是一种强大的工具,用于匹配字符串中的字符模式。通过 `java.util.regex` 包中的 `Pattern` 和 `Matcher` 类,可以实现对字符串的搜索、替换和验证等功能[^1]。 #### 一、基本语法 正则表达式的语法包括普通字符、特殊字符和元字符。以下是常用的规则: - 普通字符:如字母、数字等直接匹配自身。 - 特殊字符:需要转义才能匹配其字面意义,例如 `\.` 匹配点号 `.`。 - 元字符:具有特殊含义的字符,例如 `*` 表示零次或多次匹配,`+` 表示一次或多次匹配,`?` 表示零次或一次匹配[^1]。 #### 二、导入相关类 在 Java 中使用正则表达式时,必须导入 `java.util.regex` 包中的类。以下是一个典型的导入语句: ```java import java.util.regex.Pattern; import java.util.regex.Matcher; ``` 这些类提供了创建正则表达式对象和执行匹配操作的功能[^2]。 #### 三、创建正则表达式对象 通过 `Pattern` 类可以编译一个正则表达式字符串为模式对象。例如: ```java Pattern pattern = Pattern.compile("^[a-zA-Z0-9_]+$"); ``` 此代码定义了一个匹配由字母、数字或下划线组成的字符串的正则表达式[^2]。 #### 四、编写不包含特定表达式的正则表达式 如果需要确保字符串中不包含某些字符或模式,可以通过否定字符集或逻辑排除实现。例如,以下正则表达式匹配不包含空格的字符串: ```java Pattern pattern = Pattern.compile("^[^\\s]+$"); ``` 这里,`[^\\s]` 表示匹配任何非空白字符[^3]。 #### 五、验证邮箱格式 验证邮箱格式是正则表达式的一个常见应用场景。以下是一个符合标准的邮箱验证正则表达式: ```java String emailRegex = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"; Pattern pattern = Pattern.compile(emailRegex); ``` 该表达式能够匹配大多数合法的电子邮件地址[^4]。 #### 六、使用 `Matcher` 进行匹配检查 `Matcher` 类用于执行匹配操作。以下是一个完整的示例,展示如何验证字符串是否符合指定的正则表达式: ```java Pattern pattern = Pattern.compile("^[a-zA-Z0-9_]+$"); Matcher matcher = pattern.matcher("test_user123"); boolean isMatch = matcher.matches(); System.out.println(isMatch); // 输出 true 或 false ``` #### 七、替换字符串 除了匹配,还可以使用正则表达式替换字符串中的内容。例如: ```java String input = "Hello, World!"; String result = input.replaceAll("[A-Za-z]", "*"); System.out.println(result); // 输出 "**,,****!" ``` 上述代码将所有字母替换为星号 `*`[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值