Java的正则表达式
程序员文章站
2024-02-10 09:28:52
...
Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
Pattern pattern=Pattern.compile("topicId=[0-9]+");
Pattern.compile函数
来实现对指定字符串的截取。有两个参数第一个:regex 表示定义的规则
第二个:flag 表示设置的参数类型,第二个参数可以为空
// Pattern.compile函数语法
Pattern Pattern.compile(String regex, int flag)
Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
Matcher matcher=pattern.matcher(url);
matcher.group()必须和matcher.find()配合才行,不然Java语言会报运行时异常。
group
是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。
public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。
public static void main(String[] args) {
String str = "Hello,World! in Java.";
Pattern pattern = Pattern.compile("W(or)(ld!)");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
System.out.println("Group 0:"+matcher.group(0));//得到第0组——整个匹配
System.out.println("Group 1:"+matcher.group(1));//得到第一组匹配——与(or)匹配的
System.out.println("Group 2:"+matcher.group(2));//得到第二组匹配——与(ld!)匹配的,组也就是子表达式
}
}
Group 0:World!
Group 1:or
Group 2:ld!