php preg_match 非贪婪?

标签 php regex

<分区>

我有一个字符串(来自一个文件):

ILX (New for 2013!)

Overview: The least expensive route to Honda's premium-label goodness

Drivetrain: Two four-cylinder engines to choose from as well as a gas-electric hybrid; front-wheel-drive only.

如何获取字符串:

$writeup = file_get_contents($car_files_path . $manufacture . '/Stories/'.$story);

我想匹配概览线(概览:通往本田优质标签的最便宜路线)。实现这一目标的最佳方法是什么。

我试过 .*\n,但它会匹配所有内容,然后换行。有没有办法让正则表达式变得非贪婪?

我试过: preg_match('/^Overview:\s.*$/im', $writeup, $overall_matches) 我没有得到任何匹配项

最佳答案

在量词之后添加 ? 使其不贪婪。在这种情况下,您的正则表达式将是 .*?\n.

要专门匹配以“Overview:”开头的行,请使用此正则表达式:

/^Overview:\s.*$/im

m 修饰符允许 ^$ 匹配行的开头和结尾,而不是整个搜索字符串。请注意,没有必要让它变得不贪婪,因为 . 不匹配换行符,除非你使用 s 修饰符 - 事实上,在这里让它变得不贪婪会对性能不利。

关于php preg_match 非贪婪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967485/

相关文章:

php - 在现有项目中加载 Zend Framework 组件

php - mysql_close() 是必要的吗?

php - 尝试在 php 中显示来自 mysql 数据库的数据时出现服务器错误

php - Symfony2 @UniqueEntity 对 2 个外键的约束不起作用

php - 在 SQLITE SELECT 语句中使用的自定义 REGEXP 函数

php - 使用 php 正则表达式拆分字符串

java - 与此 preg_split 等效的 Java 是什么?

php - 如何在多行上使用相同ID连接MYSQL中的2个表

java - 将文本文件解析为数字输出

javascript - 正则表达式提取youtube视频id?