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

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正則表達式詳解

    來源:http://www.computerworld.com.cn 如果你曾經用過Perl或任何其他內建正則表達式支持的語言,你一定知道用正則表達式處理文本和匹配模式是多簡單.如果你不熟悉這個術語, ...

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

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

  4. java 正則_Java正則表達式入门

    u)     在这个模式下,假设你还启用了CASE_INSENSITIVE标志,那么它会对Unicode字符进行大写和小写不明感的匹配.默认情况下,大写和小写不敏感的匹配仅仅适用于US-ASCII字符 ...

  5. java 判断二级网址_【Java】利用正則表達式推断是否为网址

    本文与<[JavaScript]利用正則表達式检查输入框输入的是否为网址>(点击打开链接)为姊妹篇,在上文中已经提到了,正則表達式在各个程序是通用的,这里不再解说正則表達式的详细使用方法. ...

  6. Java之正則表達式【使用语法】

    认为好就顶一个!! ! ! 3.正則表達式 用一些特殊的有意义的字符组成的字符串(死记) 原子:正則表達式的最基本组成单位 正則表達式特殊意义的字符:   .  *  +  ?不能单独表示它们,假设非 ...

  7. 正則表達式截取字符串两字符间的内容

    一.问题 我有个字符串比方a="abcdanmcadedcdeefako"那么我怎么能得到一个数组,当中数组的各项是字母a和c的中间字符.即第一项是"b"第二项 ...

  8. 最全正則表達式汇总—想要的都有了

    正则式太难学,并且easy忘记 ,西西是看过非常多次.都是一会就所有不记得了滴.非常多不太懂正则的朋友.在遇到须要用正则校验数据时,往往是在网上去找非常久.结果找来的还是不非常符合要求. 所以我近期把 ...

  9. python使用正則表達式

    python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 .  ^  $ *   +  ?  { }  [ ]  \  | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...

最新文章

  1. golang中文文档_Golang 标准库 限流器 time/rate 设计与实现
  2. 面试题:mysql 数据类型
  3. android 视频图片,Android - 视频提取图片方法
  4. 谷歌浏览器添加JSON-Handle插件
  5. 利用HAProxy实现零停机更新维护
  6. arcgis 10.0中的server报错说工作站服务没有打开
  7. CSDN总结的面试中的十大算法
  8. 【SpringBoot】SpringBoot整合SpringDataJPA及基本使用
  9. python(33)多进程和多线程的区别
  10. 华为linux版笔记本安装win7,华为MateBook X Pro笔记本怎样安装win7系统
  11. python计算长方形面积代码_Python计算两个矩形重合面积代码实例
  12. cuda10.2安装包 和 cudnn安装包下载
  13. Colaboratory平台+Mask R-CNN进行模型训练和实例分割
  14. 天文坐标系的转换 时角坐标和赤道坐标系的转化
  15. 基于STM32设计的智能插座+人体感应灯(ESP8266+人体感应+手机APP)
  16. 自动驾驶:车道线检测、车速检测、实时通行跟踪、基于视频的车辆跟踪及流量统计
  17. 985高校硕导跳槽高中当老师,博士扎堆中小学,是内卷还是进步?
  18. Factory Track 同步获取 Infor CloudSuite Industrial 数据
  19. Excel如何实现多条件计数统计
  20. OneDrive撸5T硬盘空间教程

热门文章

  1. android自定义WaveView水波纹控件
  2. Swift字典Dictionary快速文档
  3. (0030) iOS 开发之跳转之转场动画
  4. python_字符串有时可以比较大小哦!
  5. void关键字的使用规则
  6. 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
  7. hdu 2295 Radar(二分+DLX)
  8. C++设计模式 之 “组件协作”模式:Template Method、Strategy、Observer
  9. 提高工作效率-shell操作快捷键
  10. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案