在Java中,我目前正在学习正则表达式语法,但我不太了解RE模式......
据我所知,模式具有组长度,下面的字符串模式的长度为 3。
import java.util.regex.*;
public class RE {
public static void main(String[] args){
String line = "Foo123";
String pattern = "(.*)(\\d+)(.*)"; //RE Syntax I get stuck on.
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
}
}
}
如果有人能向我解释这个表达式的作用是什么,多个组的作用等等,我会很高兴......
最佳答案
组 0 包含整个匹配,组 1、2、3 包含相应的捕获字符。
输入字符串:Foo123
正则表达式:(.*)(\d+)(.*)
第一个捕获组中的第一个 .*
匹配直到最后一个的所有字符。然后它回溯直到找到一个数字。回溯的原因是为了找到匹配。相应的数字将被组 2 捕获(最后一位)。所有数字之后没有剩下任何内容,因此第 3 组中出现一个空字符串。
关于Java - 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401437/