gpt4 book ai didi

java - 读取 Java 正则表达式脚本

转载 作者:行者123 更新时间:2023-12-02 03:58:15 25 4
gpt4 key购买 nike

我正在从这个网站学习 Java 正则表达式:http://www.tutorialspoint.com/java/java_regular_expressions.htm

我很难想出该页面上大多数示例的阅读输出/如何解决输入。 m.group(0) 是否引用 (.*) 和 m.group(1) 引用 (\d+) 等?

例如:输入:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
public static void main( String args[] ){

// String to be scanned to find the pattern.
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";

// Create a Pattern object
Pattern r = Pattern.compile(pattern);

// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}

输出:

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0

除了开始和结束方法外,对于这个我不确定 .start、.end 正在做什么:

输入:

public class RegexMatches
{
private static final String REGEX = "\\bcat\\b";
private static final String INPUT =
"cat cat cat cattie cat";

public static void main( String args[] ){
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
int count = 0;

while(m.find()) {
count++;
System.out.println("Match number "+count);
System.out.println("start(): "+m.start());
System.out.println("end(): "+m.end());
}
}
}

输出:

match number 1
start(): 0
end(): 3
match number 2
start(): 4
end(): 7
match number 3
start(): 8
end(): 11
match number 4
start(): 19
end(): 22

最佳答案

阅读Matcher.group(int group)的javadoc :

Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expression m.group(0) is equivalent to m.group().

所以,你所拥有的是:

(.*)(\\d+)(.*)
^^^^^^^^^^^^^^ group 0
^^^^ group 1
^^^^^^ group 2
^^^^ group 3

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

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