使用具有不同行结束样式的 m 标志来匹配行结束位置

2023-12-06

我试图用标签包装以“##”开头的每一行。尝试实现类似 GitHub/Stackoverflow 的文本格式化语法。

这就是我得到的:

$value = preg_replace('/^## (.*)$/m', '<p>$1</p>', $value);

经过谷歌搜索很长一段时间后,这似乎是正确的解决方案,但它没有按预期工作,或者我只是不明白一些东西。

示例文本:

## Some header 1

Some text that doesn't need to be altered

## Some header 2

这是结果:

<p>Some header 1
</p>

Some text that doesn't need to be altered

<p>Some header 2</p>

正如您所看到的,第二个标头得到了很好的处理,因为它位于文本的末尾。然而,第一个标头在结束标记之前的末尾会获得一个额外的新行。我该如何摆脱它?


似乎在您当前的 PCRE 设置中,一个点匹配除 LF 之外的所有字符(\n,换行),因此,它匹配 CR (\r,回车),这也是一个换行符。

PCRE 支持覆盖默认换行符(因此$锚)。为了使.匹配除CR和LF之外的所有字符,打开相应的标志:

'/(*ANYCRLF)^## (.*)$/m'
  ^^^^^^^^^^

$将在之前断言行尾\r\n.

有关此动词和其他动词的更多信息,请参见reexegg.com:

默认情况下,编译 PCRE 时,您可以告诉它在遇到.(作为点,它不匹配换行符,除非在点模式),还有^ and $锚点的行为多行模式。您可以使用以下修饰符覆盖此默认值:

(*CR)只有回车符才被认为是换行符
(*LF)只有换行符才被视为换行符(如在 Unix 上)
(*CRLF)只有回车符后跟换行符才被视为换行符(如在 Windows 上)
(*ANYCRLF)以上三者中任何一个都被认为是换行符
(*ANY)任何 Unicode 换行序列都被视为换行符

例如,(*CR)\w+.\w+火柴Line1\nLine2因为点能够匹配\n,这不被视为换行符。看demo.

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

使用具有不同行结束样式的 m 标志来匹配行结束位置 的相关文章

  • PHP、jQuery Ajax 和 json 跨域返回

    我的 php 编码页面位于一台返回 json 结果的服务器上 php 文件名为 getInfoData php 返回如下 echo json encode v 不 我可以使用 getJSON 读取 json 并在同一服务器上运行它 但我需要
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • 使用factory faker创建的图像在存储在storage/public/images文件夹中时会被删除

    我正在尝试用假图像填充我的数据库 但是当 faker 将其保存到我的图像文件夹中时 一秒钟后它被删除 并且在我的数据库字段中我得到 0 我可以访问http lorempixel com http lorempixel com 也可以 pin
  • PHP中特殊字符的转换

    我已经尝试了很多功能 但我根本无法弄清楚这一点 无论如何 正确的方法 在称为描述的表单字段中 我可以期待各种字符 在将它们提交到数据库之前 需要将它们格式化为 HTML 实体 现在 我的代码 formdesc htmlentities PO
  • 如何通过 API 平台使用“paramconverter”?

    如何通过 Symfony API 平台实现或使用 paramconverter 我想在路线上使用实体 ID 并立即生成一个对象 准备在控制器中使用 我没有在这个项目上使用注释 路由配置位于 YAML 文件中 resources App Me
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • PHP:file_get_contents 与 json_decode 不能一起工作

    使用 file get contents 读取 json 文件后遇到问题 当我运行这段代码时 它工作正常
  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • 在php中对带有特殊字符的多维数组进行排序

    我有一个多维数组 我按字母顺序排序 但问题是 带有丹麦语特殊字符 它们应该按该顺序排序 但不会按该顺序返回 这是我的数组 部分已删除 Array 0 gt Array Name gt John 1 gt Array Name gt Pate
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • 使用 Beautifulsoup 和正则表达式提取 10-K Edgar 文件中的文本

    我想从大约 10000 个文件中自动提取 1A 风险因素 部分并将其写入 txt 文件 可以找到带有文件的示例 URLhere https www sec gov Archives edgar data 1800 0001047469190
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • 从命令行运行 PHP 脚本

    如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本 我有一个phpinfo php从网络访问的文件显示German已安装 但是 如果我运行phpinfo php从命令行使用 php phpinfo php and g
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是
  • 选择MySql表数据放入数组中

    我尝试从 mysql 捕获数据并将它们全部放入数组中 认为 users table id name code 1 gorge 2132 2 flix ksd02 3 jasmen skaod2 sql mysql query select
  • PHP邮件功能有时可以工作

    我正在编写一个脚本 需要通过PHP邮件功能发送电子邮件 如下所示 它在向 gmail 帐户发送电子邮件时有效 但在我的域中的帐户却无效 我们正在运行 Exchange 服务器 截至目前 电子邮件是从 www server 发送的 有谁知道
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima
  • 如何以 Magento 方式实现库存过滤器?

    在我的 magento 网站上可以看到缺货的产品 我想要在分层导航中添加一个自定义过滤器 其中显示 排除缺货 当客户单击它时 应该隐藏缺货产品 默认情况下 我在 系统 gt 配置 gt 目录 gt 库存 下启用显示 显示缺货产品 即我希望客
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7

随机推荐

  • KeyguardManager FLAG_DISMISS_KEYGUARD 服务

    当屏幕打开时 我想检查电源按钮是否激活了它 如果是 它将自动关闭键盘保护并运行吐司 当屏幕关闭时 键盘保护将重新启用 代码到这里为止都有效 但是 当屏幕关闭时 我按下 音量调高 按钮 屏幕就会打开 但它进入检测到 电源 按钮被按下的循环 这
  • ORA-00911: 无效字符 Toad

    我用的是蟾蜍11 5 当我运行多个 truncate 语句时 它给出一个错误ORA 00911 无效字符 truncate table employees truncate table employees edit history trun
  • 如何在 IIS7 中设置应用程序的默认页面?

    我将 Web 应用程序部署到 IIS7 一切正常 但是 我希望它自动转到 www xxxxxx com views root default aspx 而不是输入真正的起始页的 url 我该怎么做呢 只需转到 web config 文件并添
  • 允许 python 子进程的多个输入

    我有一个与几年前提出的问题几乎相同的问题 有两个输入的 Python 子进程收到了一个答案但没有实施 我希望这份报告可以帮助我和其他人澄清问题 如上所述 我想使用 subprocess 来包装一个需要多个输入的命令行工具 特别是 我想避免将
  • sizeof() 如何通过引用参数传递

    我将一个数组传递给函数并尝试查找该数组的长度 但结果却出乎意料 有人可以解释一下吗 int main int array 10 0 func array return 0 void func int arr printf length of
  • 使用 Vue.js 在 .then 函数中输入错误

    我有一个获取请求来检测用户是否是管理员 我的问题是我想使用显示一个按钮v if检查它是真是假 默认情况下该值设置为false Data 然后我们得到了按钮 And the then in beforeCreate 你需要使用一个箭头函数以保
  • Go 中的 int 字符串? [复制]

    这个问题在这里已经有答案了 我真的认为这会很简单 string myInt 看来不是 我正在编写一个函数 它接受一个整数切片 并将每个整数附加到一个字符串中 并在每个整数之间添加一个分隔符 这是我的代码 func xis Int16Slic
  • 为什么栈是有界的?

    在我使用过的任何平台上 堆栈大小始终是有限的 您必须在某个时刻 在程序启动之前 指定最大堆栈大小 并且它是预先分配的 为什么堆栈不能是驻留在堆内存中的链表 那么它几乎是无限的 它是当今所有计算机体系结构的固有属性吗 我的问题与任何特定的编程
  • C 程序 77% 的时间都花在 _platform_memmove$VARIANT$Haswell 中 [已关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在分析一些用 C 编写的数字代码 分析器是 Instruments 编译器是clang在 Mac OSX 10 11 6 上 多达 77 3 的运行时间花费在 platform mem
  • Java ProcessBuilder 具有多个带空格的参数

    我知道关于从 java 执行进程有很多已解决的问题 但我无法使用提供的答案解决我的问题 我正在尝试从 java 应用程序创建 postgresql 数据库备份 我使用以下代码 ProcessBuilder probuilder new Pr
  • 针对特定用户的 Firebase 数据库规则

    我有一个数据库 我需要对所有用户进行读取访问 并且 在用户运行的应用程序脚本中调用时的写访问权限 电子邮件受保护 我的 firebase 结构是 ABC AAA1 date ABC AAA2 date ABC AAA3 date ABC A
  • 滞后时间序列数据

    我正在寻找建立一个用于预测的神经网络模型 我试图让我的数据采用图像中显示的格式 以便模型可以根据 2 天前 1 天前 今天 的先前值进行预测 这些值将在第二天针对下一个预测进行调整 例如如图所示 第一次输入的 1 天前变为第二次输入的 2
  • ExtJS:Grid 和 Form 之间的两种方式绑定

    我正在尝试学习 ExtJS 但有点卡在一个地方 我想创建一个顶部有网格 底部有表单的屏幕 我想将它们彼此绑定 以便当我从网格中选择一行时 会填充表单字段 网格中具有相同的记录 并且当我更改网格或表单中的任何内容时 另一侧也会更新 到目前为止
  • 动态地将内容添加到线性布局?

    例如 如果我定义了一个方向为垂直的根线性布局 main xml
  • Java新手需要数据库连接方面的帮助

    我是 Java 新手 甚至是 Java 数据库连接新手 当我将其放入 Main 类中时 我已成功创建数据库连接并查询表 现在我已将其移至名为 Connection 的新类中 但出现错误 package lokate import java
  • 开发蓝牙 (AVRCP 1.4) iPhone 应用程序需要了解哪些规格

    我是 iPhone 开发新手 我将参与一个项目 其中我必须开发一个支持蓝牙的 iPhone 应用程序来控制车辆音响和 DVD 播放器 该车辆配有物理遥控器 IR 该项目的目的是用支持蓝牙的 iPhone 应用程序取代 IR 以控制 IR 的
  • Lambda 捕获和参数同名 - 谁隐藏了另一个? (clang 与 gcc)

    auto foo You re using g auto compiler detector foo auto foo std puts foo compiler detector You re using clang 铿锵 3 6 0和较
  • 合并“NSManagedObjectContextDidSaveNotification”后,NSFetchedResultsController 未显示所有结果

    我有一个 NSFetchedResultsController 它使用谓词获取对象 isTrash NO 大多数情况下 这会按预期工作 但是当对象未被破坏时 获取的结果控制器不会获取未被破坏的对象 出了什么问题 发生这种情况的原因是由于me
  • ES 模块导入不起作用

    我正在尝试制作普通 ES 导入导出的简单示例 索引 js main js import foo from mathModule console log foo mathModule js export const foo Math sqrt
  • 使用具有不同行结束样式的 m 标志来匹配行结束位置

    我试图用标签包装以 开头的每一行 尝试实现类似 GitHub Stackoverflow 的文本格式化语法 这就是我得到的 value preg replace m p 1 p value 经过谷歌搜索很长一段时间后 这似乎是正确的解决方案