正则表达式贪婪与非贪婪模式

正则表达式贪婪与非贪婪模式

之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。

1.什么是正则表达式的贪婪与非贪婪匹配

  如:String str="abcaxc";

    Patter p="ab.*c";

  贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab.*c)。

  非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。

2.编程中如何区分两种模式

  默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

  量词:{m,n}:m到n个

     *:任意多个

     +:一个到多个

     ?:0或一个

3.程序实例

使用Snort的规则一条规则的一部分作为匹配文本,匹配出其中的content部分。

 1 import java.util.regex.Matcher;2 import java.util.regex.Pattern;3 4 public class RegularTest {5     6     public static void main(String[] arg){7         String text="(content:\"rcpt to root\";pcre:\"word\";)";8         String rule1="content:\".+\"";    //贪婪模式9         String rule2="content:\".+?\"";    //非贪婪模式
10         
11         System.out.println("文本:"+text);
12         System.out.println("贪婪模式:"+rule1);
13         Pattern p1 =Pattern.compile(rule1);
14         Matcher m1 = p1.matcher(text);
15         while(m1.find()){
16             System.out.println("匹配结果:"+m1.group(0));
17         }
18         
19         System.out.println("非贪婪模式:"+rule2);
20         Pattern p2 =Pattern.compile(rule2);
21         Matcher m2 = p2.matcher(text);
22         while(m2.find()){
23             System.out.println("匹配结果:"+m2.group(0));
24         }
25     }
26 }

执行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Noip模拟赛] Power

POWER 源程序名 POWER.??? (PAS,C,CPP) 可执行文件名 POWER.EXE 输入文件名 POWER.IN 输出文件名 POWER.OUT 多瑞卡得到了一份有趣而高薪的工作。每天早晨他必须关掉他所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。 多瑞卡每晚到早晨5点钟都在晚会上&a…

linux逆向工程反汇编,Kali Linux 逆向工程工具 Jad 教程

日期:2017年12月21日观看: 1,895 C 次用法:jad [option(s)] jad [选项(s)] 选项:-a - 生成JVM指令作为注释(注释)-af - 注释时输出完全限定的名称-b - 生成冗余大括号(大括号)-clear - 清除所有的前缀,包括默认的前缀-…

任意文件读取及删除漏洞

任意文件读取漏洞及危害 通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不严格,用户可以控制这个变量读取任意文件。…

微信小程序微信支付安卓手机可以,苹果手机支付失败。

问题截图: 解决办法有3种可能性,请按照对应的情况排查: 1.wx.request 无法发起网络请求,提示没有权限,域名已经配置过了,证书检测也是正确没问题的? 测试ios和安卓,假如有一方可以,一方不行,则是证书问题,请选用受认可的证书 检测地址:https://www.qcloud.co…

从JS敏感信息泄露到GETSHELL

前言 小弟新手,大佬勿喷,文章有何不妥,还望大佬们斧正。 正文 前端时间打HW,拿到一个IP,先在FOFA上搜一下 发现这个IP现在开放了三个端口,分别是86,83,82对应不同的后台管理系统 …

中专计算机专业学c语言吗,中专计算机专业学什么 有哪些课程

计算机原理、计算机应用基础、计算机网络基础、CAD辅助设计、三维动画设计、VBSIC语言及程序设计PHOTOSHOP、Windows、网页设计、Office办公自动化、多媒体、计算机系统安装及维护管理、计算机病毒原理防范等。计算机专业就业前景计算机专业就业前景很好。随着现代经济和科技的…

实战|全程分析js到getshell

本篇转载于https://forum.butian.net/share/260 看到望海师傅的山理证书真滴好看,真想搞一本,刚刚入edusrc的时候收集了一波山理的子域资产,全部看了一遍都被大佬挖的干干净净了。没有内网VPN基本上挖不到,然后我就去公众号看了一…

多家防火墙设备存在信息泄露漏洞

概述 漏洞名称多家防火墙设备存在信息泄露漏洞安全通告发布日期2021-06-16受影响产品及版本胜鑫塔下一代防火墙XT6000-A-FW-1.0.0-0-2778 利谱第二代防火墙6164-1.5.2 任子行下一代防火墙SURF-NGSA-V-3000 中科网威下一代防火墙F6600L-1.5.2 任子行网络安全审计系统内置报表 网…

教你玩转CSS 轮廓(outline)属性

目录 CSS 轮廓(outline) 所有CSS 轮廓(outline)属性 CSS 轮廓(outline) 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用…

Web安全-伪静态网页

初步认识 “伪静态”顾名思义就是一种表面上看似是静态网页(以.html、.htm等结尾),不存在任何的数据交互,却其实是动态网页,存在数据交互的网站,具有这种特性的网页被称为“伪静态网页”。我们看到的伪静态…

php双引号解析漏洞

1|0前言 在PHP语言中&#xff0c;单引号和双引号都可以表示一个字符串&#xff0c;但是对于双引号来说&#xff0c;可能会对引号内的内容进行二次解释&#xff0c;这就可能会出现安全问题。 条件&#xff1a;php版本>5.5 2|0正文 举个简单例子 <?php $a 1; $b 2; ec…

c语言用整数 寻址,132-寻址运算符-C语言教程2020年 - 视频教程 - 北盟网校 - 专注原创教学第一站...

寻址运算符&输出其操作数的内存地址。前面使用了寻址运算符&&#xff0c;它广泛用在scanf()函数。&放在变量前面&#xff0c;scanf需要用到这个变量的地址。scanf内部可以利用这个地址 去修改对应的哪个变量的值。看看下面的例子#includeint main(void){/* 定义一些…

教你玩转CSS padding(填充)

padding(填充) 当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。 单独使用 padding 属性可以改变上下左右的填充。 可能的值 填充- 单边内边距属性 在CSS中,它可以指定不同的侧面不同的填充: padding-top:25px; padding-bottom:25px…

代码审计之SQL注入:BlueCMSv1.6 sp1

这是一篇纪录关于BlueCMSv1.6 sp1两个SQL注入的审计过程&#xff0c;原文来自代码审计之SQL注入&#xff1a;BlueCMSv1.6 sp1 &#xff0c;主要纪录一下个人在参考博文复现这两个漏洞经过。 href"https://www.ichunqiu.com/course/406" target"_blank">…

记一次无意间发现某学校图书检索系统的变量覆盖漏洞

这是汇文OPAC很早就存在的一个严重漏洞 补充漏洞信息参考来源https://www.seebug.org/vuldb/ssvid-90722 1. 利用存在该漏洞参数的链接&#xff0c;访问存在漏洞文件&#xff0c;并覆盖 session 值 http://*******/opac/openlink_ebk.php?_SESSION[ADMIN_USER]opac_admin 2.…

教你玩转CSS 尺寸 (Dimension)

目录 所有CSS 尺寸 (Dimension)属性 CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度。同样&#xff0c;它允许你增加行间距。 所有CSS 尺寸 (Dimension)属性

目录扫描工具dirsearch用法

目录扫描工具-dirsearch 1.下载dirsearch#git clone https://github.com/maurosoria/dirsearch2. 进入dirsearch目录&#xff0c;进行扫描 每一列的含义分别是&#xff1a;扫描时间&#xff0c;状态码&#xff0c;大小&#xff0c;扫描的目录&#xff0c;重定向的地址 参数列…

html dd自动换行,为什么我的dd里面的内容没有自动换行呢

2-6图文混排*{margin: 0;padding: 0;}.clear{clear: both;}.content{width: 1000px;margin: 0 auto;}.word{font-family: "微软雅黑";font-weight: bolder;font-size: 20px;padding-top: 10px;padding-bottom: 10px;text-align: center;}.content .pic-word dl{width…

Java 9抢先体验:与JShell的动手实践– Java REPL

从今天开始如何开始使用Java 9最酷的功能之一&#xff1f; 上周末&#xff0c;我终于开始尝试使用Java 9的早期访问版本了。第一站是JShell&#xff0c;它也被称为Project Kulla。 首先让我鼓起勇气尝试早期访问Java版本的原因。 那就对了。 Java 9的正式发布日期当前设置为2…

JWT攻击手册

JSON Web Token&#xff08;JWT&#xff09;对于渗透测试人员而言可能是一种非常吸引人的攻击途径&#xff0c;因为它们不仅是让你获得无限访问权限的关键&#xff0c;而且还被视为隐藏了通往以下特权的途径&#xff1a;特权升级&#xff0c;信息泄露&#xff0c;SQLi&#xff…