使用星号 * 量词的奇怪结果

2023-12-10

我正在尝试在一个简单的字符串上练习星号 * 量词,但是虽然我只有两个字母,但结果包含第三个匹配项。

<?php
$x = 'ab';

preg_match_all("/a*/",$x,$m);
echo '<pre>';
var_dump($m);
echo '</pre>';
?>

结果出来了:

 array(1) {
  [0]=>
    array(3) {
     [0]=> string(1) "a"
     [1]=> string(0) ""
     [2]=> string(0) ""
    }
 }

据我了解,它首先匹配 a,然后 b 时没有匹配,所以结果应该是

  array(1) {
  [0]=>
    array(2) {
     [0]=> string(1) "a"
     [1]=> string(0) ""
    }
 }

那么第三场比赛是什么?


使用正则表达式演示工具here,我们可以看到第一场比赛是a,而第二个和第三个匹配项之间的零宽度分隔符a and b,以及之间的b和字符串的末尾。

请记住,以下行为preg_match_all就是重复采取模式a*并尝试将其顺序应用于整个输入字符串。

我怀疑你真正想在这里使用的是a+。如果你检查这个第二个演示,你会看到a+我们只得到一个匹配,对于单个a信中ab。所以,我投票支持使用a+在这里解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用星号 * 量词的奇怪结果 的相关文章

  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 通过 facebook graph API 检索 facebook 用户的邮政编码

    我正在尝试使用 facebook graph API 检索用户的邮政编码 我正在使用以下代码 代码在php ini中 facebook new Facebook array appId gt APP ID secret gt APP SEC
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • 如何仅使用 PHP5 RecursiveDirectoryIterator 类递归显示具有特定文件类型的文件夹和子文件夹

    您好 我正在尝试使用 FilterIterator 上的扩展来获取 RecursiveDirectoryIterator 类 但由于某种原因 它仅在根目录上进行迭代 我的代码是这样的 class fileTypeFilter extends
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • Javascript console.log(object) 与连接字符串

    我在 node js 中运行这个 gt x foo bar foo bar gt console log x foo bar undefined gt console log hmm x hmm object Object undefine
  • 使用 sed 在两个模式之间替换多个惰性字符串

    Example This word1 is a test word2 file 我想要的是 This is a test file 问题是括号出现多次 所以如果我使用 sed s lt gt g I get This file这是错误的 如
  • 基类的构造函数会被自动调用吗?

    class Person public int age public Person age 1 class Customer Person public Customer age 1 Customer customer new Custom
  • MongoDB:forEach 与 fetch +each

    当我想从 Meteor 应用程序迭代存储在 MongoDB 中的一组文档时 我可以使用 db collection find forEach function f doc or var docs db collection find fet
  • .Net MVC 项目上的本地号码全球化错误

    我正在尝试验证本地十进制数字 葡萄牙语 gt pt PT 但我在浏览器中收到控制台错误 Uncaught TypeError t parseFloat is not a function Exception occurred when ch
  • 用于匹配任何和所有 HTML data-* 属性的通用 CSS 选择器 [重复]

    这个问题在这里已经有答案了 是否可以匹配所有具有data 属性使用only CSS 以下是我想要匹配的属性示例 data scope data sessionlink data visibility tracking 我可以 data sc
  • Python 压缩运行长度编码

    我正在尝试了解游程编码 但我在网上发现了这个挑战 但我无法做到 它要求您编写一个名为compression strg 的压缩函数 该函数将长度为64的二进制字符串strg作为输入 并返回另一个二进制字符串作为输出 输出二进制字符串应该是输入
  • Python 子进程在什么情况下会收到 SIGPIPE?

    我正在阅读子进程模块部分中有关 Popen 类的 Python 文档 我遇到了以下代码 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdout PIPE p1
  • 为什么 IUpdateSession::WebProxy 不能在 Windows 10 上运行?

    我有一些内部代码 可以使用 Windows Update API 执行 Microsoft Update 扫描 由于某些客户端无法直接访问互联网 因此我明确设置了WebProxy属性指向我们的本地代理服务器 在测试期间 在 Windows
  • 如何在 Swift 3.0 中使用 Alamofire 解析 JSON,无需任何第三方库

    这里我想通过url解析JSON 这是 url 上可用的实际 JSON 数据 所以我需要解析它并使用 Alamofire 在我的应用程序中读取 但我做不到 我的 url 中的 JSON 数据 main date 2017 01 11 USDA
  • 将 JSON 数据解析为 Excel 工作表

    我正在尝试使用以下代码将 JSON 数据作为表格提取到 Excel 工作表中 Sub test Dim httpObject As Object Set httpObject CreateObject MSXML2 XMLHTTP sURL
  • 如何在按钮单击时调用小部件的 onUpdate 方法?

    基本上 我有一个简单的应用程序小部件 它显示文件中的值并每 24 小时更新一次 它工作正常 但后来我想将刷新按钮添加到我的小部件中 并且每次单击该按钮时我想调用 onUpdate 我一直在寻找一些答案 但它们似乎与我想做的事情不符 应用程序
  • Android SQLite 更新/插入

    我想要UPDATE我的桌子上有一排 WHERE 键 最后选择的如果具有该键的行不存在 我想要INSERT it 我可以得到UPDATE如果该行已经存在 则可以工作 但不会INSERT如果丢失 我已经尝试过这些 第一个正确更新 但不插入 St
  • Elmah 无法使用 ASP.NET 网站

    我尝试在我的 asp net 网站上使用 elmah 但每当我尝试访问http localhost 端口 elmah axd我得到资源未找到异常 我的 web config 如下
  • Git Config 仅排除一个分支的文件

    我想在我的公共分支中排除一个名为 config dbconfig js 的文件 我用它推送到 github 但仍然能够从 master 推送到我的 noester com git 存储库以推送到生产环境 我将配置文件更改为 core rep
  • Typescript 给出“找不到模块‘xmlhttprequest’的声明文件。”

    Using import XMLHttpRequest from xmlhttprequest 在 Node 上 当我使用以下命令进行编译时 出现以下错误tsc index ts 4 col 32 错误 7016 QF 可用 找不到模块 的
  • JVM 缺少 Rhino

    我有一个使用 ScriptEngine 处理一些 javascript 的项目 并且在我的机器上运行良好 但是当我将项目的 jar 发送到服务器时 我发现服务器的 JVM 没有内置 Rhino 当该代码调用 new ScriptEngine
  • 发送至:网络无法访问

    我有两台机器正在测试我的代码 一台工作正常 另一台我遇到了一些问题 我不知道为什么会这样 我正在使用一个对象 C 作为我项目的网络部分 在服务器端 我这样做 为了清楚起见 删除了错误检查 res getaddrinfo NULL port
  • 在 Android 中完成父级和当前活动

    我有 3 项活动 活动 A 会导致活动 B 活动 B 又可以返回活动 A 或启动活动 C 但是 如果我在活动 C 中按返回 应用程序应该关闭 总结 活动 A 启动活动 B 紧迫Back活动 B 应该导致 A 活动 B 开始活动 C 紧迫Ba
  • 使用星号 * 量词的奇怪结果

    我正在尝试在一个简单的字符串上练习星号 量词 但是虽然我只有两个字母 但结果包含第三个匹配项 结果出来了 array 1 0 gt array 3 0 gt string 1 a 1 gt string 0 2 gt string 0 据我