我正在研究一个上一个问题的解决方案,尽我所能,使用正则表达式。我的模式是
"\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"
根据 NetBeans,我有两个非法转义字符。我猜它与 \d 和 \w 有关,但它们在 Java 中都是有效的。也许我的 Java 正则表达式语法不对......
涉及的整行代码是:
userTimestampField = new FormattedTextField(
new RegexFormatter(
"\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"
));
假设这个正则表达式在 Java 中String
从字面上看,您需要转义反斜杠\d
and \w
tags:
"\\d{4}\\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"
这变得更多,好,bonkers坦率地说,当你想匹配反斜杠时:
public static void main(String[] args) {
Pattern p = Pattern.compile("\\\\\\\\"); //ERM, YEP: 8 OF THEM
String s = "\\\\";
Matcher m = p.matcher(s);
System.out.println(s);
System.out.println(m.matches());
}
\\ //JUST TO MATCH TWO SLASHES :(
true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)