问答

php正则匹配、替换两特定字符串之间的内容

作者:admin 2021-04-21 我要评论

需要正则匹配替换。 :万物生{字*丛@@丛林法则*字}这里只有【魔鬼】,不具有任何气味{字*合@@合则铭记*字}。不熟,才能生长。 需要匹配的内容均以 {字* 开头,以...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

需要正则匹配替换。

:万物生{字*丛@@丛林法则*字}这里只有【魔鬼】,不具有任何气味{字*合@@合则铭记*字}。不熟,才能生长。

需要匹配的内容均以{字*开头,以*字}结尾


(?={字*)(.*)(?=*字})

仅匹配出一项,一整行,如下

{字*丛@@丛林法则*字}这里只有【魔鬼】,不具有任何气味{字*合@@合则铭记*字}

目标php匹配两项:

{字*丛@@丛林法则*字}
{字*合@@合则铭记*字}

并替换为
【丛】[丛林法则]
【合】[合则铭记]

最终为:

:万物生**【丛】[丛林法则]**这里只有【魔鬼】,不具有任何气味**【合】[合则铭记]**。不熟,才能生长。

请求指导

###

参考文档 preg_match_all

###

使用 preg_replace_callback 匹配外围组,再使用 preg_replace 处理组内。

图片.png

编辑器直接粘贴进来,反斜杠会丢失,到 JS Run 获取代码

<?php

$str = ':万物生{字*丛@@丛林法则*字}这里只有【魔鬼】,不具有任何气味{字*合@@合则铭记*字}。不熟,才能生长。';

$result = preg_replace_callback('!{字\*(.+?)\*字}!u', function ($matches) {
    return preg_replace('!([\x{4e00}-\x{9fa5}])@@([\x{4e00}-\x{9fa5}]{4})!u', '**【\\1】[\\2]**', $matches[1]);
}, $str);

var_dump($result);

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • php正则匹配、替换两特定字符串之间的

    php正则匹配、替换两特定字符串之间的

  • 怎么用PHP代码写一个生成随机32位无符

    怎么用PHP代码写一个生成随机32位无符

  • elementUI 里表格的树形数据如何判断点

    elementUI 里表格的树形数据如何判断点

  • js 判断json数组里面字段的值是否等于

    js 判断json数组里面字段的值是否等于

腾讯云代理商
海外云服务器