regex - 正则表达式替换任何与捕获组不匹配的内容
问题描述
我有一个如下字符串:[Monster:Test]Maps=1,5,2,3[Monster:Test2]Maps=2-5
我需要替换不必要的文本字符串。
我想保留的唯一文本是括号,包括括号之间的文本。所以只有[Monster:Test]
并且[Monster:Test2]
应该保留。
所以我找到它的正则表达式是:\\[(.*)\\]
我不明白如何替换与我的组不匹配的任何内容。
解决方案
怎么用preg_match_all
$s = "[Monster:Test]Maps=1,5,2,3[Monster:Test2]Maps=2-5~";
preg_match_all("/\[[^\]]+\]/", $s, $m);
echo implode($m[0]);
结果成:
[Monster:Test][Monster:Test2]
这是否按要求工作?
推荐阅读
- .net - 集成测试 .net 核心与 EF 核心和身份核心
- centos - /lib/模块/
/构建/不存在 - java - Telegram Bot(新线程中的新更新)与 telegrambots-spring-boot-starter
- javascript - Pandoc 和 NodeJS:如何将结果作为文件 blob?
- glsl - 使用 ANGLE 时防止在着色器程序中展开循环
- python-3.x - 如何转换日期
- jquery - 使用 JQuery 动态增加 td id
- java - mysql-connector-java-5.1.47.jar 库在 .jar 文件中不起作用
- angular - Angular 7中的多个切换按钮默认选择值
- maven - wso2 无法使用 pom 安装功能