正则表达式

来源:互联网 发布:佐佐木明希 知乎 编辑:程序博客网 时间:2024/05/16 15:14

      正则表达式字符有:| , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等。

     想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 \ 去转义,因转义使用 \, 而这个 \ 正好也是正则表达式的字符,所以还得用一个 \ , 所以需要两个 \\。     

  1. String str="5678|XYZ";  
  2. String[] b = str.split("\\|");  //注意这里用两个 \\,而不是一个\  
  3. System.out.println("处理结果: "+b[0]+","+b[1]);   //输出的是: 处理结果: 5678,XYZ 

再来看看:

  1. String str="5678|XYZ";  
  2. String[] b = str.split("|");  //注意直接使用|,该字符是正则表达式的一部分,  
  3. String x="处理结果: ";  
  4. for(int i=0;i<b.length;i++){  
  5.     x=x+b[i]+",";  
  6. }  
  7. System.out.println(x);   //输出的是: 处理结果: 5,6,7,8,|,X,Y,Z,

 正则表达式:
 1、例如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");   2、例如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");  “.”和“|”都是转义字符,必须得加"\\";
 3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可   以用String.split("and|or");

2.数组长度的问题

String a = "";
String[] b = a.split(",");
b.length为 1;
*
String a = "c";
String[] b = a.split(",");
b.length为 1;
**
String a = "c,,,";
String[] b = a.split(",");
b.length为 1;
***
String a = "c,,c";
String[] b = a.split(",");
b.length为 3;
****
String a = ",";
String[] b = a.split(",");
b.length为 0;

例如:

public static void main(String[] args) {
String str = "jing|gege|hello";
String[] str1 = str.split("|");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
}
}

输出结果为:

j
i
n
g
|
g
e
g
e
|
h
e
l
l
o

而下面的代码:

public static void main(String[] args) {
String str = "jing|gege|hello";
String[] str1 = str.split("|");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
}
}

输出结果为:

jing
gege
hello


0 0
原创粉丝点击