我需要将文本转换为html标记,如下所示:

input: p1: Question 1

output: <h3>Question 1</h3>

或者也可以

input: question 1: ¿question 1?

output: <h3>¿question 1?</h3>

我不明白的细节是,我有以下Regex规则.

([a-zA-Z])([1-9])(:)+(.*)?

我的结果是:

<h3> Question 1</h3>
question 1: ¿question 1?
  • 在第一个示例中,我需要删除在<h3>Q之间生成的空格
  • 在第二种情况下,它对我一点都不起作用

你能帮我解决我在正则表达式规则方面的不足吗?

100

推荐答案

Regexp需要匹配问题编号之前的可选空格(以修复第二个问题)和:之后的可选空格(以修复第一个问题).

([a-zA-Z]+)\s*([1-9])(:)+\s*(.*)

DEMO

(.*)之后就不需要?了.因为.*匹配零长度字符串,所以不需要将其标记为可选.

我真的不太确定为什么在(:)之后有+--你真的想允许Question 1:::::这样的东西吗?

Php相关问答推荐

添加自定义Metabox到WooCommerce管理订单,启用HPOS

以编程方式更改新订单、已取消订单和失败订单的邮箱WooCommerce通知

WooCommerce数量减号和加号图标未显示

Php解压缩deflate64

Laravel:测试命令时无法获取工作通知::AssertSentTo

如何实现对数据库表中多列的唯一约束?

PHP文件上载问题-";Move_Uploaded_Files";未按预期工作

允许客户定义特定WooCommerce产品的价格

在个人资料页面上显示个人资料图像

限制联系人页面仅允许在WooCommerce中登录的用户

从WooCommerce管理订单汇总中隐藏原始小计行

如何在codeigniter中将order_by RAND与下面的代码一起使用

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

在 DateTime 或 DateTimeImmutable 对象上调用modify() 时是否必须使用空格?

使用 wp_footer 挂钩添加一些 CSS 不起作用

Laravel的Storage::exists返回false,而file_exists返回true.

Laravel使用另一张表进行关联查询

PHP 中是否有 is_closure() 函数?

Eloquent 的模型更新了它应该 laravel php 的更多行

如果 static:: 被解析为B,为什么 PHP 会执行A的方法