懒惰、贪婪和所有格量词之间有什么区别?

2023-12-11

以下量词在场景、速度等方面有何不同?

  • ?, ?? and ?+全部匹配0或1次.
  • *, *? and*+` 全部匹配0次或多次.
  • +, +? and ++全部匹配1次或多次.

  • ?, * and + are greedy.
  • ??, *? and +? are 不情愿/懒惰.
  • ?+, *+ and ++ are 所有格.

谁能帮助我理解这些术语的含义?为什么同一个工作的每个量词有三种变体?


拿绳子

aaaab

并查看以下正则表达式如何匹配它:

Regex          Submatches
               group 1  group 2  group3
(a?)(a*)(ab)   a        aa       ab
(a??)(a*)(ab)           aaa      ab
(a?+)(a*)(ab)  a        aa       ab
(a*)(a?)(ab)   aaa               ab
(a*?)(a?)(ab)  aa       a        ab
(a*+)(a?)(ab)  aaaa              <Match fails!>
(a+)(a*)(ab)   aaa               ab 
(a+?)(a*)(ab)  a        aa       ab
(a++)(a*)(ab)  aaaa              <Match fails!>

解释:

  • a?尝试匹配一个a,但如果整个匹配成功有必要的话,它准备不匹配任何内容。
  • a??尝试不匹配任何内容,但已准备好匹配一个a如果这是整场比赛成功所必需的。
  • a?+尝试匹配一个a。如果它能做到这一点,它就会not如果整个匹配成功有必要,则退后不匹配任何内容。如果无法匹配a,那么它很乐意不匹配任何内容。
  • a*尝试匹配尽可能多的a尽可能多,但它准备匹配更少的as,如果这对于整场比赛的成功是必要的,那么甚至什么都不做。
  • a*?尝试不匹配任何内容,但它已准备好匹配尽可能多的内容a为了整场比赛的成功,这是绝对必要的,但仅此而已。
  • a*+尝试匹配尽可能多的a尽其所能。如果它能做到这一点,它就会not后退以匹配更少的as 如果这对于整个比赛的成功是必要的。如果连一个都无法匹配a,那么它很乐意不匹配任何内容。
  • a+尝试匹配尽可能多的a尽可能多,但它准备匹配更少的as(但至少一个),如果这是整场比赛成功所必需的。
  • a+?尝试只匹配一个a,但它已准备好匹配尽可能多的a为了整场比赛的成功,这是绝对必要的,但仅此而已。
  • a++尝试匹配尽可能多的a尽其所能。如果它能做到这一点,它就会not后退以匹配更少的as 如果这对于整个比赛的成功是必要的。如果连一个都无法匹配a,则正则表达式失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

懒惰、贪婪和所有格量词之间有什么区别? 的相关文章

随机推荐

  • DateTickUnit 文档在哪里?

    我需要更改 TimeseriesChart 不同缩放级别的默认 DateTickUnit 设置 但在文档中找不到我需要阅读的位置 我将非常感谢您的指点 以下是 TimeSeriesChartDemo1 的 Java API http www
  • Visual Studio 2015 IntelliSense 不显示所有方法

    我最近从 2013 升级到 Visual Studio 2015 因为出于某种原因 即使在多次安装尝试之后 2013 也无法在 Windows 10 上运行 The only issue is IntelliSense is not dis
  • 使用命令行上传到 iTunesConnect 时如何指定应用程序 ID

    Summary 我正在尝试将我的应用程序自动上传到 iTunes Connect 我至少有 6 个应用程序 并且全部都处于 准备上传 状态 问题是当我尝试使用命令行将应用程序上传到 iTunesConnect 时 出现以下错误消息 警告 i
  • Oracle聚合函数返回一组随机值?

    标准 SQL 聚合函数max 将返回一组中的最高值 min 将返回最低的 Oracle中是否有聚合函数可以从组中返回随机值 或者某种技术来实现这一目标 例如 给定表foo group id value 1 1 1 5 1 9 2 2 2 4
  • 返回 n 中 k 个元素的所有组合的算法

    我想编写一个函数 它接受一个字母数组作为参数 并选择其中的一些字母 假设您提供一个包含 8 个字母的数组 并希望从中选择 3 个字母 那么你应该得到 8 8 3 3 56 返回数组 或单词 每个数组由 3 个字母组成 计算机编程艺术第 4
  • VirtualWebappLoader 或类似的WebLogic 将目录添加到war 的类路径中?

    如何在部署到 WebLogic 的 war 的类路径上提供外部目录 将在其中部署其他 jar 我熟悉如何通过定义一个在 Tomcat 上执行此操作Loadercontext xml 中的元素并包括virtualClasspath指定的属性A
  • 底层连接已被 linkedin 关闭

    我们有一个使用 Net Framework 4 6 1 运行的应用程序 可以访问 Linkedin 调用端点 https www linkedin com oauth v2 accessToken 它一直工作到 2020 年 7 月 14
  • C结构数组初始化

    我有结构 struct ABC int a int b 和它的数组 struct ABC xyz 100 我想初始化它 a 10 和 b 20 对于所有数组元素 哪种方法更好 虽然没有特别优雅的方式初始化在C语言中像这样的大数组是可能的 你
  • 在 javascript 服务器端连接 MySQL,无需使用 Node.js

    我有一个与服务器一起运行的 JavaScript 应用程序 例如nginx or eclipse local server 我想知道是否可以将其与mysql服务器数据库连接 我知道他们有很多npm packages for nodejs应用
  • jQuery:取消绑定事件处理程序以稍后再次绑定它们

    有谁知道如何取消绑定事件处理程序集 但记住它们以便稍后再次绑定它们 有什么建议么 项目的数据中有一个事件元素 这应该可以开始 您可以在解除绑定之前读取元素并将处理程序存储在数组中 如果您需要更多帮助 请发表评论 我通过阅读 fn clone
  • NLTK导入错误

    我是 Python 和 NLTK 的新手 我一直在尝试寻找解决问题的方法 但尚未找到解决方案 希望有人可以帮助我 我目前运行的是 64 位 Windows 8 我已按照 NLTK 网站上的说明进行操作 http www nltk org i
  • 如何在 FileOpen 对话框中禁用 Shell 扩展

    我说的是 Windows shell 扩展 我有一个 shell 扩展 它可以显示我的自定义文件类型的特定属性 例如 filetype 当然 这会导致我的 shell 扩展 dll 被加载到 explorer exe 进程中 但现在如果我在
  • 是否应该谨慎使用 FirebaseDatabase.getInstance()?

    例如 当我在 android 中使用 SQLiteDatabase 时 打开 关闭大量 SQLiteDatabase 助手通常不是一个好主意 相反 最好创建一种单例 以确保只打开 1 个数据库 假设我有一个带有静态方法的类 它执行大量需要
  • 如何在Android中使用自定义日历视图以及如何设置提醒提醒?

    我需要制作一个 Android 应用程序来显示日历控件 我曾试图在Android提供的默认小部件中找到这样的控件 但没有找到 如何在Android应用程序中集成日历控件 我还希望日历能够添加特定日期的事件和提醒 在计时器中同时播放 2 个声
  • 如何使用numpy将RGB图像转换为基于颜色的one-hot编码3d数组?

    简而言之 我想做的与这个问题类似 将 RGB 图像转换为索引图像 但我想要获取 n 通道图像 而不是 1 通道索引图像 其中img h w 是一个one hot编码向量 例如 如果输入图像是 0 0 0 255 255 255 索引 0 分
  • MediaCodec 编码视频底部有绿条且色度搞砸

    我开始了一个项目Grafika并对其进行了修改 我有一个框架 与原始框架没有太大不同 它可以捕获来自Camera并同时以不同的分辨率将其连续编码为视频 MediaCodec 用于编码 配置为使用COLOR FormatSurface为了让我
  • 当使用“all one word”时,有什么方法可以使 html 文本换行吗? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法在 div 中自动换行 我有这个 css 和 html 问题 我有一个描述 我想将其放入一个 100 像素宽的框中 并且我希望文本沿着页面向下流动 我设置了一个这样的div div styl
  • SVG 在 Firefox 中完全不可见

    在将其标记为重复之前 我们已经确保宽度和高度设置正确 我将其描述为不可见 因为尽管它占用了正确的空间 甚至以正确的尺寸加载到图像上 但图像的内容在网站 网络选项卡以及直接查看 SVG 时都是空的 基本上 无论我们如何显示或查看它 实际的 S
  • OpenGL-ES 2.0 中未声明 glMapBuffer

    我正在 ubuntu 10 10 中通过使用 kronos 和 pvrsd kNow 代码进行 Opengl es 2 0 include
  • 懒惰、贪婪和所有格量词之间有什么区别?

    以下量词在场景 速度等方面有何不同 and 全部匹配0或1次 and 全部匹配0次或多次 and 全部匹配1次或多次 and are greedy and are 不情愿 懒惰 and are 所有格 谁能帮助我理解这些术语的含义 为什么同