如何用正则表达式的命名捕获组提取特定信息?
- 内容介绍
- 文章标签
- 相关推荐
本文共计224个文字,预计阅读时间需要1分钟。
命令行捕获格式:`(?year.*)-(?month.*)-(?date.*)+完整示例+package+com.example.demo;import+java.util.regex.Matcher;import+java.util.regex.Pattern;public+class+RegexTests+{+public+static+void+main+(String+[]+args)+{+String+text+=%272023-0%E2%80%9D+}}+`
命名捕获组格式
(?<year>.*)-(?<month>.*)-(?<date>.*)
完整示例
package com.example.demo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTests {
public static void main(String[] args) {
String text = "2023-09-20";
String regex= "(?<year>.*)-(?<month>.*)-(?<date>.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
// 如果没有匹配,会报错:java.lang.IllegalStateException: No match found
if(matcher.find()){
System.out.println("year:" + matcher.group("year"));
System.out.println("month:" + matcher.group("month"));
System.out.println("date:" + matcher.group("date"));
}
}
}
参考文章
- Java 正则表达式的捕获组(capture group)
本文共计224个文字,预计阅读时间需要1分钟。
命令行捕获格式:`(?year.*)-(?month.*)-(?date.*)+完整示例+package+com.example.demo;import+java.util.regex.Matcher;import+java.util.regex.Pattern;public+class+RegexTests+{+public+static+void+main+(String+[]+args)+{+String+text+=%272023-0%E2%80%9D+}}+`
命名捕获组格式
(?<year>.*)-(?<month>.*)-(?<date>.*)
完整示例
package com.example.demo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTests {
public static void main(String[] args) {
String text = "2023-09-20";
String regex= "(?<year>.*)-(?<month>.*)-(?<date>.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
// 如果没有匹配,会报错:java.lang.IllegalStateException: No match found
if(matcher.find()){
System.out.println("year:" + matcher.group("year"));
System.out.println("month:" + matcher.group("month"));
System.out.println("date:" + matcher.group("date"));
}
}
}
参考文章
- Java 正则表达式的捕获组(capture group)

