Java 从随机字符串中获取日期模式

Java 从随机字符串中获取日期模式,java,date,Java,Date,我有一个使用字符串文字方法(如split、substring等)从“v={yyyyymmdd}”返回“YYYYMMDD”而不带out的场景 我是否可以使用dateUtil方法或任何正则表达式 谢谢。使用正则表达式- String input = "v={YYYYMMDD}"; String regex = "^v=\\{([^}]{8})\\}$"; Matcher m = Pattern.compile(regex).matcher(input); if (m.find()) {

我有一个使用字符串文字方法(如split、substring等)从“v={yyyyymmdd}”返回“YYYYMMDD”而不带out的场景

我是否可以使用dateUtil方法或任何正则表达式

谢谢。

使用正则表达式-

String input = "v={YYYYMMDD}";
String regex = "^v=\\{([^}]{8})\\}$";

Matcher m = Pattern.compile(regex).matcher(input);

if (m.find()) {
    System.out.println("Date pattern - " + m.group(1));
} else {
    System.out.println("No date found!");
}
结果-

Date pattern - YYYYMMDD
使用正则表达式-

String input = "v={YYYYMMDD}";
String regex = "^v=\\{([^}]{8})\\}$";

Matcher m = Pattern.compile(regex).matcher(input);

if (m.find()) {
    System.out.println("Date pattern - " + m.group(1));
} else {
    System.out.println("No date found!");
}
结果-

Date pattern - YYYYMMDD

尝试
str.replaceAll(“^v=\{(\\d{8})\\}$”,“$1”)
Yes,正则表达式应该可以工作。检查以了解如何进行。你需要了解
Matcher
Pattern
。嗯,你说的“YYYYMMDD”是指八位数字(大概由四位数字的年份、两位数字的月份和两位数字的月份天数组成)还是字面上的四个字母y,后跟两个字母M,后面是两个字母D?嘿@TimBiegeleisen谢谢你的链接,但我的要求是不返回日期。我需要返回图案,而不是日期。v={yyyyymmdd}到yyyyymmdd,而不是v={20190107}到20190107Oh。如果您真的想从模式本身提取,请使用
str.replaceAll(“^v=\{([^}]{8})\}$,“$1”)
。尝试
str.replaceAll(“^v=\{(\\d{8})\}$,“$1”)
是的,正则表达式应该可以工作。检查以了解如何进行。你需要了解
Matcher
Pattern
。嗯,你说的“YYYYMMDD”是指八位数字(大概由四位数字的年份、两位数字的月份和两位数字的月份天数组成)还是字面上的四个字母y,后跟两个字母M,后面是两个字母D?嘿@TimBiegeleisen谢谢你的链接,但我的要求是不返回日期。我需要返回图案,而不是日期。v={yyyyymmdd}到yyyyymmdd,而不是v={20190107}到20190107Oh。如果确实要从模式本身提取,请使用
str.replaceAll(“^v=\{([^}]{8})\\}$,“$1”)