看到有同学询问这个都好几天了还没解决,就摆渡了哈,

以下纯属copy,

=======================================

正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为。需要注意一点,正则表达式中的前和后和我们一般理解的前后有点不同。一段文本,我们一般习惯把文本开头的方向称作“前面”,文本末尾方向称为“后面”。

但是对于正则表达式引擎来说,因为它是从文本头部向尾部开始解析的(可以通过正则选项控制解析方向),因此对于文本尾部方向,称为“前”,因为这个时候,正则引擎还没走到那块,而对文本头部方向,则称为“后”,因为正则引擎已经走过了那一块地方。

如下图所示:

前瞻就是在正则表达式匹配到某个字符的时候,往“尚未解析过的文本”预先看一下,看是不是符合/不符合匹配模式。

后顾,就是在正则引擎已经匹配过的文本看看是不是符合/不符合匹配模式。符合和不符合特定匹配模式我们又称为肯定式匹配和否定式匹配

现在看它们的定义方法吧(零断言,不用管术语名称,翻译太拗口复杂了)

Java代码

//前瞻

(?=exp)真正有用的部分,在这个位置之前,之前的数据需要匹配exp

(?<=exp)真正有用的部分,在这个位置之后,之后的数据需要匹配exp

//后顾

(?!exp)真正有用的部分,在这个位置之前,之前的数据不匹配exp

(?

开始写不含特定字符的正则

参考例子说明

Java代码

String reg="^(?!.*(不合谐)).*$";//用到了前瞻

System.out.println("不管信不信,反正现在很不合谐".matches(reg));//false不通过

System.out.println("不管信不信,反正现在非常合谐".matches(reg));//true通过

System.out.println("不合谐在某国是普遍存在的".matches(reg));//false不通过

上面就把含有特定字符的句子完全抹杀了,实现了完全和谐社会。。。。。

上面例子是特定字符在任意位置出现都会匹配

现在某国突然良心发现皇恩浩荡开放部分言论

只想实现不以特定字符结尾的句子

我们套用上面的例子,稍微改下

Java代码

String reg="^.*(?

System.out.println("不管信不信,反正现在很不合谐".matches(reg));//false不通过

System.out.println("不管信不信,反正现在非常合谐".matches(reg));//true通过

System.out.println("不合谐在某国是普遍存在的".matches(reg));//true通过

现在第三条数据这么不和谐的数据也通过

人民可以说些话了,某国也可以辟谣了

五毛们也有工作量了,也多少增加了GDP的发展吧

连接网址http://xixian.iteye.com/blog/1323630

java 正则 不包含字符串_java正则表达式找出不包含特定字符串相关推荐

  1. java正则匹配双字节_Java 正则表达式详解(二)

    Java常用正则表达式匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用 ...

  2. java正则匹配英文句号_java正则表达式最简单 学习教程

    本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀! 来看 这样一个代码 String mobilePhoneRe ...

  3. java 正则提取大于等于号_Java正则表达式

    一.简述 在字符串比较时,简单的操作可以使用一些算法来查找或匹配,如要判断一个端口地址地址是否合法,可以简单的判断其是否在0-65536之间. 但是,有一些字符匹配操作使用这种方法非常复杂,如匹配一个 ...

  4. java正则匹配的坑_java正则表达式入坑指南

    在日常开发工作中,无论你使用的语言是java.python.shell.golang还是C#, 正则表达式是编程语言中几乎绕不开的话题.有了它,可以帮你快速定位到符合条件的文本内容.今天小编带大家一起 ...

  5. java 正则 多个空格_java正则表达式 多个空格替换多个成-

    今天遇到一个正则表达式问题,如题,需求是将"aaa   bbb"替换成"aaa---bbb",关键来了,要求正则表达式前面是aaa,后面是bbb. 如s.rep ...

  6. java正则匹配下划线_java正则表达式-匹配中文数字字母下划线

    正则表达式用来指定字符串模式.当你需要定位匹配某种模式的字符串时就可以使用正则表达式.例如,我们下面的一个例程就是在一个HTML文件中通过查找字符串模式来定位所有的超链接.     当然,为了指定一种 ...

  7. java正则 找出数字,Java顶用正则表达式找出数字

    Java中用正则表达式找出数字 Java中用正则表达式找出数字 1.题目 String str = "fjd789klsd908434jk#$$%%^38488545",从中找出7 ...

  8. 找出最大长度子字符串(只包含字母),打印并且返回长度.

    /** 找出最大长度子字符串(只包含字母),打印并且返回长度. 例如str= "abc123abcd234abcdefgha324adsdawqdasdaseqqwe345abchded&q ...

  9. oracle 正则表达式匹配日期格式,利用正则表达式找出不合符的日期

    很多时候我们的日期可能存放的是字符串类型,在插入的时候也很有可能插入的日期格式不正确, 因此我们需要找出这些不合符的日期格式,来此来修正.当然可以使用TO_DATE函数一个一个的转换来找出不合法的日期 ...

最新文章

  1. 基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的密码锁设计(altera版)...
  2. Python学习记录day4
  3. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)
  4. c语言 开辟复数指针数组,指针和数组 - llwwzz的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. Android开发之非常好用的日志工具类(公司项目挖出来的)
  6. springboot3.x 集成持久层框架
  7. Xshell、Xftp免费版获取教程
  8. java版本导致ASDM连不上ASA
  9. Linux入门的基础知识点
  10. ES mapping 详解
  11. JS如何删除节点和所有子节点
  12. BufferedWriter的用法
  13. matlab等高图填色,[转载]matlab学习——area填色图
  14. 计算机网络基础篇 | 频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)
  15. 【单片机】第二章单片机基本原理练习题
  16. “疯狂变脸”再升级,腾讯云重磅发布多脸融合新功能
  17. php esc p 打印,ESC/P 打印指令使用,3种票据打印方法(转)
  18. 当前服务器ip配置文件,服务器远程ip配置文件
  19. Xcode中创建和添加Libary
  20. 机器翻译:使用小牛翻译API进行中英文翻译实战

热门文章

  1. [BZOJ4244]邮戳拉力赛
  2. 解决部分Android设备(支持OTG)无法设别USB设备
  3. 都是同事为什么你的信用卡额度比我高?
  4. 关系模型(关系模型的常用术语中,域指的是属性的取值范围)
  5. 结合DDE指标来分析成本分布的重要作用
  6. CentOS8配置自己的yum软件仓库
  7. Box2D物理引擎模拟炸弹爆炸效果
  8. Kaggle入门-泰坦尼克号之灾
  9. 书籍《科学思考者》读后感
  10. docker for windows下载和安装-Windows10版本