php - 在给定分隔符内使用正则表达式选择 X 行

标签 php regex

所以,我试图选择内部---痕迹的内容,这显然是多行,但我必须使用正则表达式,因为并非所有条目都包含相同数量的元数据。

我尝试使用 PHPpreg_match 函数进行匹配的示例如下:

---
Title: A fresh start to all of us. Right?
Slug: a-fresh-start-to-all-of-us-right
Author: admin
Date: 12/05/2015 16:29
Draft: false
Image: http://placehold.it/400x280
Tags: codesans, install, markdown
---

# A fresh start comes, after all.

如您所见,--- 跟踪下面的任何内容都无法匹配。

我正在尝试与此正则表达式匹配: /^(.*)?[^\n]$/gm
但到目前为止似乎还不起作用。我已经尝试对跟踪进行标记以使它们类似于分隔符,但它也不起作用(此正则表达式:/^(\-{3})?(.*)?(\-{3})? [^\n]$/gm)。

请问有什么指导吗?

最佳答案

您需要使用 DOTALL 标志,即 s :

/(\A|\R)-{3}\R(.+?)-{3}(\R|\z)/s

顺便说一句,PHP 中没有 g 标志。

RegEx Demo

关于php - 在给定分隔符内使用正则表达式选择 X 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201843/

相关文章:

php/ajax - 根据其他下拉列表中的选定选项填充下拉列表

javascript - PHP -> jQuery -> AJAX 表单验证

正则表达式 - 捕获捕获组的前 2 个字符

javascript - 正则表达式捕获 cshtml 文件中的 Javascript.js

c# - 如果字符串在 C# 中包含 2 个句点

ios - 检查邮政编码是否在范围内

.NET正则表达式允许3个重复字符

PHP/Beanstalkd : Spawning Multiple workers in parallel

php - 社交网站 IM/聊天系统的想法

php - mysql 的多个下拉菜单