正则表达式在PHP中不起作用

时间:2017-04-10 15:39:24

标签: php regex preg-replace

我已经在数据库中保存了以前插入的数据,我需要提取一个片段来替换它,但是不管我做什么都不行,正则表达式是正确的,因为我已经在其他程序中试过了,请我需要帮助。

这是数据库中的文本

administrator/history_p/1/<?php echo base_url();?>articuls/Antes

我需要在包含此<?php echo base_url();?>

之前替换所有内容

但是角色<>并不想接受它们。

这是常规的表达

[^\s<>]*)<(\?php echo base_url\(\);\?>

这是代码

$regexp = preg_replace("([^\s<>]*)<(\?php echo base_url\(\);\?>)", 'HI', $field)

2 个答案:

答案 0 :(得分:2)

你的正则表达式是正确的,但你必须添加分隔符:

$regexp = preg_replace("/([^\s<>]*)<(\?php echo base_url();\?>)/", 'HI', $field) 
//               here __^                           and here __^

不需要使用捕获组,您必须转义括号:

$regexp = preg_replace("/[^\s<>]*<\?php echo base_url\(\);\?>/", 'HI', $field) 

答案 1 :(得分:0)

对于您展示的数据,此正则表达式可用作魅力

.*>