如果我们有这样的短信:
SYS 1页1从2:/SYS Lorem Ipsum只是印刷和排版行业的虚拟文本。Lorem Ipsum一直是业界的标准..。 SYS 2页2从2:/SYS 它不仅活了五个世纪,而且跨越了电子排版,基本保持不变。
我应该如何在SYS和/SYS标记之间只保留文本?就像这样:
第2页第1页: Lorem Ipsum只是印刷和排版行业的虚拟文本。Lorem Ipsum一直是业界的标准..。 第2页: 它不仅活了五个世纪,而且跨越了电子排版,基本保持不变。
我认为下面的regex会在两个没有属性的标记中找到文本:
/\[SYS\](.+?)\[\/SYS\]/但是,如何用标记的内部文本(或任何其他字符串)替换整个元素呢?
发布于 2016-08-25 15:10:09
使用以下表达式:
\[SYS[^]]*\](.+?)\[/SYS\]并将其替换为$1,参见a demo on regex101.com。
在PHP中
$regex = '~\[SYS[^]]*\](.+?)\[/SYS\]~';
$string = preg_replace($regex, '$1', $your_original_string);有关ideone.com上的完整代码,请参见演示。
发布于 2016-08-25 15:01:44
您可以这样替换:
$re = "/\\[\\/?SYS(?:\\s\\d+)?\\]/";
$str = "[SYS 1]Page 1 from 2:[/SYS]";
echo preg_replace($re, "", $str)https://stackoverflow.com/questions/39148592
复制相似问题