Java中对字符串按 '+' , '*' , '|' , '.' 进行分割时的注意事项。

一、String 类中提供可以使用正则表达式的方法

  //判断字符串是否匹配给定的正则表达式,如果匹配返回true.
1)public boolean matches(String regex)

  //根据匹配给定的正则表达式来拆分此字符串,limit 参数控制模式应用的次数,指定匹配的次数。
2)public String[] split(String regex, int limit) 


//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

 3) public String replaceAll(String regex, String replacement) 

注:" .","+ “,”*","| " 在正则表达式中有特殊的含义,因此在java中要使用这些符号对字符串进行分隔时,需要在前面加上"\\"。
即为 " \\.", “\\+” ,"\\
", “\\| " 或者用”[.]""[+]""[
]""[|]" 。如果是"\",则为\\\\"。

二、实例

     //判断字符串是否全部是数字。
     String str3="5225662";
     System.out.println(str3.matches("\\d"));  //返回true

	1)对字符串str按'+'进行分隔
	  String str="12+38+3";
	  String[] arr=str.split("\\+");
	  for(String string:arr){
		  System.out.println(string);
	  }


     2)对字符串str按'|'进行分隔
       String str2="aa|bb|cc";
	  String[] arr2=str2.split("\\|");
	  for(String string:arr2){
		  System.out.println(string);
	  }
	  
	  3)对字符串按多个分隔符进行分隔,用"[]" 或者用'|'连接多个分隔符。

	  //使用"[]"对str4按'+'和'|' 进行分隔
       String str4="aaa|ccc+dddd";  
	   String[] arr4=str4.split("[|,+]");
	  for(String string:arr4){
		  System.out.println(string);
      }
      
	    //使用"|"对str5按'+'和'|' 进行分隔
	    String str5="aaa|ccc+dddd";  
	    String[] arr5=str5.split("\\+|\\|");
	    for(String string:arr5){
		   System.out.println(string);
        } 

三、java中的正则表达式

1)字符类
[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(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)

2)预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

3)边界匹配器

^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾

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

5)Logical 运算符

XY X后跟 Y
X|Y X 或 Y
(X) X,作为捕获组

注:根据Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值