表示年月的正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表示年月的正则表达式相关的知识,希望对你有一定的参考价值。

谁能帮我写个年月的正则表达式,不要日。格式如:201402
需要验证有效性

^20[0-9]2[01][0-9]$
[0-9]2表示00-99之间
[01]表示接下来这个数只能是0或1,因为不存在22月32月之类的
[0-9]这个表示这个数在0-9之间的任意一个这个正则唯一的漏洞就是匹配00-19之间,但是没有00这个月,也没有13,19等月
参考技术A 这个正则表达式关键是后面的月份,月份只能是01-12,可以分解一下00-09或者10-12
这个给出年份在1000-2999的的正则表达式供你参考
[12]\d3(0[1-9]|1[0-2])
[12]\d3 -- 年份
(0[1-9]|1[0-2]) -- 月份本回答被提问者和网友采纳
参考技术B 20[\d]2(?:0[1-9]|1[0-2])

java数组匹配进行合成一个数组方法

比如我现在有3个类
分别为
class A
private String idcard;
private String name;
private String 户籍类型; //先用汉字标识
private String 出生年月;
//set get 方法省略

class B
private String 户籍类型;
private String 是否成年;
private String 发放金额;
//set get 方法省略

class C
private String name;
private String idcard;
private String 出生年月;
private String 户籍类型;
private String 是否成年;
private String 发放金额;
//set get 方法省略

然后我现在已经取到了 A 的人员数组和 B的标准数组
A[] a=xxx.queryinfos();
B[] b=xxxx.queryinfos();
C[] c=要包含这两个数组的某些需要的字段
我应该怎么样匹配然后放到C数组
可以先不说匹配的事情,就说我该怎么放进去;
求java 大神们教下,悬赏30,本人新手。希望详细点

N=Math.max(a.length,b.length);
C[] c=new C[N];
int x=0;
for(int i=0;i<a.length;i++)
    for(int j=0;j<b.length;j++)
        
            //匹配,a数组和b数组只有户籍类型相同,所以匹配时选择户籍类型匹配
            if(a[i].户籍类型==b[j].户籍类型)
            
                c[x].name=a[i].name;
                c[x].idcast=a[i].idcast;
                ....
                c[x].是否成年=b[j].是否成年;
                ...
                
            
         
        //大概就是这个样子

参考技术A for(int i = 0 ; i<a.lenth ; i++)
c.idcard=a.idcard;
c.name=a.name;
c.户籍类型=a.户籍类型;
c.出生年月=a.出生年月;

for(int i = 0 ; i<b.lenth ; i++)
c.是否成年=b.是否成年;
c.发放金额=b.发放金额;
参考技术B 查询结果中处理,效率很低的。

//c[]的长度不确定是否和a、b一样长,这假设是a的长度一致。

for(int i=0; i<a1.length; i++ )
A a1= a[i];
//给c[i]想要的a1中的属性

for(B b1:b)
//如果b1是想要的,那给c[i]的属性赋相应的值





建立方法 C[] c=xxx.queryCInfos();
然后在底层的查询中,写两者合并的查询。

以上是关于表示年月的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

年月日日期正则

时分的正则表达式 求正则表达式,只能输入年月日时分 比如201812121212

求一个只能输入年月的正则表达式,如2000-12

正则表达式练习题

YYMM 的正则表达式是啥?就是只能输入年月,例如1706

正则表达式