我想从下面的字符串中提取 uid 后缀。我正在尝试模式。但找不到匹配项。
输入:exportDocumentInfo_29510309-5673-4c20-83bd-6d2303c21016-0.txt
uid:29510309-5673-4c20-83bd-6d2303c21016
后缀:0
public class Test {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("exportDocumentInfo_*-*.txt");
String mydata = "exportDocumentInfo_29510309-5673-4c20-83bd-6d2303c21016-0.txt
";
Matcher matcher = pattern.matcher(mydata);
if(matcher.matches()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
最佳答案
将每个 *
替换为 (.*)
。另外,去掉 ";
之前的换行符,否则程序将无法编译。结果应该类似于这样:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(final String[] args) {
final Pattern pattern =
Pattern.compile("exportDocumentInfo_(.*)-(.*).txt");
final String mydata =
"exportDocumentInfo_29510309-5673-4c20-83bd-6d2303c21016-0.txt";
final Matcher matcher = pattern.matcher(mydata);
if (matcher.matches()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
}
关于java - 从包含文件名的字符串中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732978/