上一篇我们介绍了正则表达式,本文我们细数Java中的正则表达式应用,主要介绍在String中和Pattern与Matcher的用法
String中的正则表达式
matches
public boolean matches(String regex)
匹配某正则表达式:返回boolean类型值
例如:1
2
3
4
5
6//一段文字
String text =
"[2018-01-20] this is a text,,,and hello world,hello everyone,";
boolean bool = text.matches("^\\[20\\d\\d-\\d\\d-\\d\\d\\].*");
//true
replaceFirst
public String replaceFirst(String regex, String replacement)
替换第一个符合正则的值 替换为replacement
例如:替换第一个llo结尾的单词
1 | //一段文字 |
replaceAll
public String replaceAll(String regex, String replacement)
替换第所有符合正则的值 替换为replacement
1 | //一段文字 |
split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串,它是全部拆分,最后一个值如果是被拆分的字符串,则不计入,第一个如果是被拆分的字符串,则记为一个""
空字符串,中间的如果是几个被分隔的字符串,则记为""
空字符串
例如:按照,
拆分
1 | String text = |
public String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串,limit 是限制拆分的次数,实际分解的次数是 limit-1 次,limit 就是分解后数组的 length。
1 | String text = |
注意replace方法
public String replace(CharSequence target, CharSequence replacement)
target的值是要替换的值,而不是正则表达式,所以与上面有区别.
所有target会被替换为replacement
例如:替换text中的hello1
2
3
4
5
6
7//一段文字
String text =
"[2018-01-20] this is a text,,,and hello world,hello everyone,";
result = text.replace("hello", "world");
System.out.println("replace() "+ result);
//[2018-01-20] this is a text,,,and world world,world everyone,
Pattern 和 Matcher
Pattern
Matcher
Pattern 和 Matcher例子
需求将文件夹里面的数据转为json串样式:
形如:
文件夹里数据:00望远镜(形)
结果数据:{id:00, title:"00 望远镜", desc:"形", cardUrl:"https://www.iteway.com/uploads/super_memory/00.jpg"}
1 | import java.io.BufferedReader; |