原文符号

因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?

有无量词

问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。

非贪婪匹配

贪婪匹配

在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

string pattern1 = @"a.*c"; // greedy match

Regex regex = new Regex(pattern1);

regex.Match("abcabc"); // return "abcabc"

非贪婪匹配

在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配

string pattern1 = @"a.*?c"; // non-greedy match

Regex regex = new Regex(pattern1);

regex.Match("abcabc"); // return "abc"

几个常用的非贪婪匹配Pattern

*? 重复任意次,但尽可能少重复

+? 重复1次或更多次,但尽可能少重复

?? 重复0次或1次,但尽可能少重复

{n,m}? 重复n到m次,但尽可能少重复

{n,}? 重复n次以上,但尽可能少重复

不捕捉模式

如何关闭圆括号的捕获能力?而只是用它来做分组,方法是在左括号的后边加上:?,这里第一个圆括弧只是用来分组,而不会占用捕获变量,所以$1的内容只能是steak或者burger,而永远不可能是bronto。

while(<>){

if(/(?:bronto)(steak|burger)/){

print "Fred wants a $1\n" ;

}

}

相关文章

总结

以上是编程之家为你收集整理的正则表达式问号的四种用法详解全部内容,希望文章能够帮你解决正则表达式问号的四种用法详解所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java正则表达式判断问号_正则表达式问号的四种用法详解相关推荐

  1. java 生成dump_java dump文件怎么生成和分析-JMAP用法详解

    jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...

  2. java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解

    Java设计模式之观察者模式原理与用法详解 本文实例讲述了Java设计模式之观察者模式原理与用法.分享给大家供大家参考,具体如下: 什么是观察者模式 可以这么理解: 观察者模式定义了一种一对多的依赖关 ...

  3. java docker 持续集成_最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  4. java正则表达式判断手机号_正则表达式学习之简单手机号和邮箱练习

    正则表达式的组成规则 在java中,正则表达式的编译是类 java.util.regex.Pattern 正则表达式的构造摘要 1.字符x 包括所有大写和小写字母.所有数字.所有标点符号和一些其他符号 ...

  5. java正则判断银行卡号_正则表达式验证银行卡号

    BPM.blockUI({ target: $("#blockAddDiv"),Boxed: true,message: FeekongLan.label.loadmsg });/ ...

  6. java 服务端渲染_基于vue-ssr服务端渲染入门详解

    第一部分 基本介绍 1.前言 服务端渲染实现原理机制:在服务端拿数据进行解析渲染,直接生成html片段返回给前端.然后前端可以通过解析后端返回的html片段到前端页面,大致有以下两种形式: 1.服务器 ...

  7. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解

    主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 ...

  8. java adt入门教程_【教程】【多图详解】如何在Eclipse中离线安装ADT(Android Development Tools)...

    背景 本来正常情况的话,去下载集成好ADT的Eclipse,就可以直接使用了: 但是呢,(有人)有时候,是本身已经有了Eclipse了,是需要(通过Eclipse)在线下载和安装ADT的. 结果就遇到 ...

  9. java连接智能电表_智能电表的四种读取方法

    新式的智能电表与老式电表相比,智能电表具有计量精度高.智能扣费.电价实时查询.电量记忆.抄表时间冻结.余额报警.信息远程传送等功能特性,能最大限度避免人为错误,还能有效防止窃电行为. 目前,国内智能电 ...

最新文章

  1. 2022-2028年中国服装电商行业发展战略规划及投资方向研究报告
  2. 有关高级关系引擎中存在错误
  3. Linux命令screen—终端切换,工作环境保存,画面同步,防断网
  4. C++ STL 容器之 deque简单使用
  5. mysql --max_allowed_packet=32m_mysql 设置max_allowed_packet 大小的办法
  6. Qt工作笔记-QTreeWidget中itemAt中的坑
  7. 中国移动公布5G核心网大单 全面加快5G网络部署
  8. 细聊分布式ID生成方法-1
  9. jquery 获取父窗口的元素、父窗口、子窗口
  10. 区块链 Fisco bcos 智能合约(12)-Solidity的高级特性
  11. log4j.properties中log4j.rootLogger 与log4j.rootCategory 有什么区别 .
  12. 单级倒立摆的神经网络控制
  13. 工作日志之MTK刷机
  14. 给大家推荐下这几年看过的觉得不错的视频教程
  15. 终于把AI换脸的原理搞清了
  16. Android查看手机sqlite数据库(可视化)
  17. 自定义dns服务器是什么,dns是什么意思?dns怎么设置(手动设置/软件设置)
  18. c语言int转换成float,int怎么转化为float 将 int型变量n转换成float型变量的方法是...
  19. python n维向量向任意方向旋转,求旋转矩阵
  20. 目前国内p2p视频直播软件

热门文章

  1. 嵌入式实时操作系统uc/OS-II第4章课后习题1-3
  2. 万字长文|“重新定义公司:谷歌是如何运营的”——某出行产品技术VP带你解读管理和商业逻辑
  3. M1芯片Mac原生运行minecraft我的世界解决方案
  4. OneNote | 复制粘贴文本输出图片解决方案
  5. C++ CRC校验 CRC16 CCITT FALSE x16 + x12 + x5 + 1
  6. html背景音乐怎么设置音量,如何设置背景音乐?
  7. 甄别野鸡大学-中国大学查询
  8. 计算机应用基础操作题文字录入,计算机应用基础期末考试题 一、 文字录入与排版(20分) 试用Word字处理软件录入一篇文章(每个学员的内容...
  9. Scrum板与Kanban如何抉择?敏捷工具:unqqu板与按照uvcqzrhm
  10. Vue开发实例(16)之创建标签页