gpt4 book ai didi

Java - 正则表达式

转载 作者:行者123 更新时间:2023-12-01 17:01:31 25 4
gpt4 key购买 nike

在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 组中出现一个空字符串。

DEMO

关于Java - 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com