近期项目中正在做后台校验,而后台校验也基本都是使用正則表達式校验。本文做一些粗略的总结。

1、字符串长度:.{1,10},注意有一个点在{}前,表示匹配全部。‘{}’之前一定是一个捕获组,因此假设有其它筛选要求而且限制长度则为在总捕获组的最后加上{}来限制长度。

2、怎样表示不为abcd的随意一个字符:([^abcd])*。使用^表示在[]不为[]内的随意字符;注意,常有人写成([^a|b|c|d])*,[]里边的|不代表或者的意思,这里指表示|这个字符本省。

3、怎样表示字符串中不含有adc或def等字符串:((?!adc)(?!def).)* 。当中adc为且的关系;这里有个小圆点的原因是:写正則表達式须要记住的一个重要原则就是正則表達式都是基于位校验的,因此假设此处我们没有小圆点来匹配位,这个正則表達式就是错误的。

4、怎样表示多个限制条件:即多个限制条件且。使用多个捕获组相连接就可以。即使用多个()相连。如:怎样保证字符串中不存在adc、def且不存在双引號、单引號、斜杠、尖括号等,且长度保证在40位以内:((?

!adc)(?!def)([^\"'\\<])){0,40},就像之前说的{}之前须要一个大的括号来作为一个终于捕获组。

5、怎样匹配包括换行符等在内的特殊字符的全部字符:我之前写的是这种:(.|//s){1,2000}。可是有一天測试竟然告诉我当他真的用2000个字符来验证的时候。这个直接导致程序异常了,经过多方验证原来这是jdk的一个bug,于是仅仅能改用([//s//S]){1,2000}。这里使用一个小技巧,表示全部字符时用//s和//S取代,由于//s代表全部换行符 空格符等字符,而//S恰好有表示非换行符等。正好是一个互补关系。

JAVA正則表達式小总结的更多相关文章

  1. Java正則表達式入门

     众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...

  2. Java正則表達式语法

    Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...

  3. java正則表達式 match、find匹配位置

    如题.对于java正則表達式这几个方法匹配一次后的,匹配位置搞不太清楚,就写了几个样例.例如以下: String ss="ooaaoo"; Pattern pt=Pattern.c ...

  4. java正則表達式总结

    近期用到的正則表達式 因为近期在做一个android的新闻client.多次用到了正則表達式.因此总结下. 1.使用正則表達式获取Rss资源内的文章内容的图片url 由于在每条新闻浏览的listVie ...

  5. Java正則表達式

    近期工作中常常要用到正則表達式,不得不花点时间对其进行一定的学习.   JDK中提供了2个类来支持正則表達式,各自是java.util.regex.Pattern和java.util.regex.Ma ...

  6. Java正則表達式演示样例

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public s ...

  7. java正則表達式的坑

    java中正則表達式比較有意思,这里列举几个常见的坑 1.[]符号,中括号表示当中的数据都是或的关系 假设[\\w+]是匹配条件 abc能否够匹配的到呢? 首先\\w(注意这里没有中括号)表示a-z ...

  8. 【开卷故意】JAVA正則表達式模版

    专业既然是机器学习.那工作肯定也是继续和数据打交道,那么问题来了,非常多时候推荐算法和数据挖掘算法都是现成可用的,平台初建,重点还在数据过滤和抽取.如何高效的抽取数据? 利用往常算法比赛中经常使用的字 ...

  9. JAVA中正則表達式总结

    昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...

随机推荐

  1. mysql使用出现错误:mysqld dead but subsys locked

    现象: 登陆时候出现如下信息 [root@localhost home]# mysql -uroot -p123456mysql: [Warning] Using a password on the ...

  2. [转]Android监听ListView里Button事件

    本文转自:http://blog.csdn.net/lovediji/article/details/6753349 public View getView(int position, View co ...

  3. MVC系列学习(四)-初识Asp.NetMVC框架

    注:本文章从伯乐那盗了两张图,和一些文字: 1.MVC设计模式 与 Asp.Net Mvc框架 a.MVC设计模式 MVC设计模式 是一种 软件设计模式,将业务逻辑 与 界面显示 分离,并通过某种方式 ...

  4. Android Thermal-engine

    Thermal Engine Thermal 相关的东西主要在Vendor/qcom/proprietary/thermal-engine 目录下: thermal-engine.conf 文件可以用 ...

  5. 2015.12.25-2016.01.01 大论文迭代B

    大论文B轮迭代,稍重前端 12.25 周五,完善摘要 12.26 周六,完善第一章 12.27 周天,完善第二章 12.28 周一,完善第三章 12.29 周二,完善第四章 12.30 周三,完善第五 ...

  6. 【sqli-labs】 less56 GET -Challenge -Union -14 queries allowed -Variation3 (GET型 挑战 联合查询 只允许14次查询 变化3)

    单引号括号闭合 http://192.168.136.128/sqli-labs-master/Less-56/?id=1')%23 http://192.168.136.128/sqli-labs- ...

  7. On branch master nothing to commit, working tree clean ERROR: Repository not found. fatal: Could not read from remote repository.

    将gitbash部署hexo到github:hexo deploy 报以下错误: Administrator@liu MINGW64 /Hexo $ hexo d INFO Deploying: gi ...

  8. ceph对接openstack环境

    环境准备: 保证openstack节点的hosts文件里有ceph集群的各个主机名,也要保证ceph集群节点有openstack节点的各个主机名 一.使用rbd方式提供存储如下数据: (1)image ...

  9. shell使用eval进行赋值bc计算,bad substitution

    开始我认为是这样的: [root@jiangyi02.sqa.zmf /home/ahao.mah/ALIOS_TEST] #cat bbb.sh #!/bin/sh eval $1_new=123 ...

  10. 通过JS唤醒app(安卓+ios)

    有需求说要通过页面按钮唤醒app,或者手机上没有这款app跳转到商店,然后刚开始也是查了资料的,结果发现一头雾水,不过最后还是捣鼓出来了,当然也参考了前人分享的经验,下面我就将方法整理一下: 首先明确 ...