0%

Java 正则表达式的简单使用

Java 正则表达式的简单使用


前言

Java 正则表达式的简单使用

示例

1
2
3
4
5
6
7
8
Pattern pattern = Pattern.compile(">(application_[\s\S]*?)</a>",([\s\S]*?),"<br");
Matcher matcher = pattern.matcher(znode);

while (matcher.find()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}

find 方法

public boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。

此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配到的第一个字符开始。
如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。

  • matcher.group() 返回匹配到的子字符串
  • matcher.start() 返回匹配到的子字符串在字符串中的索引位置.
  • matcher.end() 返回匹配到的子字符串的最后一个字符在字符串中的索引位置.

group(0) 表示当前这一次匹配到的所有字符子串。 group(1) 表示当前这一次匹配到的第一个字符子串。
同理group(2) 表示当前这一次匹配到的第一个字符子串。第几个字串对应的是 Pattern.compile 中括号的位置

查找不包含某些字符串的

这里正则查找不包含 huidu、rd 的字符串

1
^(?!.*huidu*)(?!.*rd).*$

Matcher的find()和matches()方法不同

find()方法在部分匹配时和完全匹配时返回true,匹配不上返回false。

matches()方法只有在完全匹配时返回true,匹配不上和部分匹配都返回false。


参考链接