今天同事帮我调试了密码修改模块的正则表达式问题,最后我发现成功调通的正则表达式如下:

 

// 密码的正则表达式,由大写字母,小写字母,数字,下划线四类字符组成,且至少要包含其中两类.

private final val REGEXP_PATTERN "((?=.*\\d)(?=.*[A-Z])|(?=.*\\d)(?=.*[a-z])|(?=.*\\d)(?=.*_)|" +

  "(?=.*[A-Z])(?=.*[a-z])|(?=.*[A-Z])(?=.*_)|(?=.*[a-z])(?=.*_))^[\\da-zA-Z_]{6,20}$"

   就是说还是换回了java的String表达方式才成功的.

   过程很艰辛,把它换成了最基本的表达式,譬如N位数字的,测了发现没问题,然后再把每个margin内的单元测一下,发现也没问题,然后想到是表达式换行出的问题,最后发现改成双引号之后竟然调通了.

   同时我发现Future类型回传作为askTry方法的返回值的时候,成功时要和askTry后面的中括号中类型一致,如果抛异常就无所谓了.另外git使用的正确方式应该是先把自己的修改commit,然后git pull origin master,如果有冲突则解决冲突,然后再git push origin XXX,其中XXX是远程自己的分支,最后在gitlab上请求分之合并.