java 正则匹配 yyyyMMddHHmmssSSS_
时间: 2023-08-09 14:05:50 浏览: 99
好的,如果你想匹配格式为 yyyyMMddHHmmssSSS_ 的字符串,可以使用如下的正则表达式:
```java
String patternString = "^\\d{17}_.*$";
```
在这个正则表达式中,我们使用了正则表达式元字符 `^` 和 `$` 来匹配字符串的开头和结尾,`\\d{17}` 表示匹配 17 个数字字符(也就是年月日时分秒毫秒的组合),`_.*` 表示匹配下划线后面的任意字符。
如果你想提取字符串中的时间部分,可以使用分组捕获的方式:
```java
String patternString = "^(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{3})_.*$";
String dateString = "20220815160855999_example";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(dateString);
if (matcher.matches()) {
int year = Integer.parseInt(matcher.group(1));
int month = Integer.parseInt(matcher.group(2));
int day = Integer.parseInt(matcher.group(3));
int hour = Integer.parseInt(matcher.group(4));
int minute = Integer.parseInt(matcher.group(5));
int second = Integer.parseInt(matcher.group(6));
int millisecond = Integer.parseInt(matcher.group(7));
System.out.println(String.format("%d-%02d-%02d %02d:%02d:%02d.%03d", year, month, day, hour, minute, second, millisecond));
}
```
在这个示例中,我们使用了分组捕获的方式提取了时间部分,并将时间格式化输出。
注意,在使用正则表达式时,由于斜杠是正则表达式的特殊字符,需要使用转义字符将其转义,例如 `\d` 表示数字字符。
阅读全文