看火龙果写了一个验证日期的Java正则表达式,就给转了过来
由于使用到了反向预搜索模式“(?<=)”和“(?<!)”,所以这个只能在 Java 中使用,不能在 JavaScript 中使用,JavaScript 不支持反向预搜索。支持 yyyy-MM-dd、yyy-MM-dd、yy-MM-dd 和 y-MM-dd,即年份为 1~4 位数字,范围(1~9999,不存在公元 0 年),月和日应为两位数字(月和日要为一位数字的话还需要稍微修改一下),分隔符为“-”(凡是分隔符的地方都加上了注释,可以改成其他的字符)。
下面是源代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DateRegex {
public static void main(String[] args) {
String[] str = {
"2001-0-0", "2001-1-1", "2001-1-30", "2001-1-31",
"2001-1-32", "2001-2-1", "2001-2-27", "2001-2-28",
"2004-2-29", "2001-2-29", "2001-2-30", "2001-2-31",
"2001-2-32", "2001-3-1", "2001-3-10", "2001-3-29",
"2001-3-30", "2001-3-31", "2001-3-32", "2001-4-1",
"2001-4-10", "2001-4-29", "2001-4-30", "2001-4-31",
"2001-4-32", "2001-5-1", "2001-5-10", "2001-5-29",
"2001-5-30", "2001-5-31", "2001-5-32", "2001-6-1",
"2001-6-10", "2001-6-29", "2001-6-30", "2001-6-31",
"2001-6-32", "2001-7-1", "2001-7-10", "2001-7-29",
"2001-7-30", "2001-7-31", "2001-7-32", "2001-8-1",
"2001-8-10", "2001-8-29", "2001-8-30", "2001-8-31",
"2001-8-32", "2001-9-1", "2001-9-10", "2001-9-29",
"2001-9-30", "2001-9-31", "2001-9-32", "2001-10-1",
"2001-10-10", "2001-10-29", "2001-10-30", "2001-10-31",
"2001-10-32", "2001-11-1", "2001-11-10", "2001-11-29",
"2001-11-30", "2001-11-31", "2001-11-32", "2001-12-1",
"2001-12-10", "2001-12-29", "2001-12-30", "2001-12-31",
"20
轻便的数据传输方式一直是面向服务构架(SOA)所关注的焦点,对于SOA来说,曾经发展出了很多方便的数据传输模式。但自从XML流行后,这些传输模式都逐渐消失了,因此,现在的SOA中的基本的数据传输模式都是基于XML的。虽然XML可以用于象服务发送请求、从服务器获得响应或传递数据表之类的操作,但这些操作都太简单,而有时我 ......
XML 数据格式很难搜索,但是最近随着 XQuery API 的出现,XML 搜索变得非常灵活和简单。对于使用 SAX、DOM、JDOM、JAXP 等处理 XML 文档的 Java™ 程序员来说,工具箱中增加 XQuery API for Java 是一件值得高兴的事。现在 Java 程序员不用再求助于系统调用或者笨拙的 API 就能利用 XQuery 的强大功能了,Sun 提供了一 ......