php - 正则表达式 plus 与 star 的区别?

标签 php regex

有什么区别:

(.+?)

(.*?)

当我在我的 php 中使用它时 preg_match正则表达式?

最佳答案

它们被称为量词。

* 0 个或多个前面的表达式

+ 1 个或多个前面的表达式

默认情况下,量词是贪婪的,这意味着它匹配尽可能多的字符。

量词后的 ? 会更改行为以使该量词“不贪婪”,意味着它将尽可能少地匹配。

贪婪/不贪婪示例

例如字符串“abab

a.*b 将匹配“abab”(preg_match_all 将返回一个匹配项,即“abab”)

a.*?b将仅匹配开头的“ab”(preg_match_all将返回两个匹配项“ab”)

您可以在线测试您的正则表达式,例如在 Regexr 上,see the greedy example here

关于php - 正则表达式 plus 与 star 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54923168/

相关文章:

javascript - 使用 JavaScript 将 "%"发送到 API

php - 在 SELECTION 语句上的非对象上调用成员函数 bind_param()

java - Curl 对象到 URL 生成

javascript - 从所有数字和百分比之间的字符串中删除空格(javascript 正则表达式)

python - 如何使用正则表达式提取字符串之间的数字

javascript - 如何在没有html onclick的情况下单击元素时将参数传递给方法

php - 使用 EasyAdmin 3 中的预填充值重定向到 NEW Action

java - 正则表达式替换问题理解

C:正则表达式优化 |保存状态

javascript - 使用正则表达式搜索双括号文本或双括号