【问题标题】:PHP remove delimited placeholders from stringPHP从字符串中删除分隔的占位符
【发布时间】:2013-07-26 14:04:14
【问题描述】:

我正在尝试从字符串中删除一些块,这基本上是 html 代码;块由 # 分隔 我对正则表达式为零,但在另一个 SO 主题 (Replace everything between and including two characters using regex in php) 上找到了这种方法,但它不起作用,我不知道为什么。 我的块是 html 代码中的占位符,如下所示:

#TEXT_2#

我尝试了这些功能(没有一个成功):

$text = preg_replace('/\[[#]]*]/', '', $text);
$text = preg_replace("/\\#\\\(\d).*?\\#/", "", $text);
$text = preg_replace( '~\#(\d+)\#~' , "", $text);

任何人都可以建议我一种方法吗? 任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 预期输出是什么?
  • 输出应该是没有占位符的整个字符串(即html代码),包括分隔符'#'
  • 使用实际输入和预期输出编辑您的问题。正则表达式的微小变化可能会导致它不起作用。

标签: php regex preg-replace str-replace


【解决方案1】:
echo preg_replace('/#\w+#/', '', $text);

【讨论】:

  • \w == [a-zA-Z0-9_] 这样您就可以删除该下划线
【解决方案2】:
$text = "#in1#out1#in2#out2#in3###out3";
$text = preg_replace('/#[^#]*#/', '', $text);
echo $text, PHP_EOL;

它应该只回显输出部分,即:out1out2out3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多