用regex php替换文本,我收到了这个错误

时间:2017-04-16 12:12:32

标签: php regex

<html>
<body>
<form name='form' method='post' action="">
Dork: <input type="text" name="dork" id="dork" >
<input type="submit" name="submit" value="Submit">  
</form>
</body>
</html>
<?php 
$ptn = "/(?:[a-z]{4,5}://[a-z.0-9]*\/)?([a-z.\?_=]*)([0-9]*)/";  // Regex
$str = $_POST['dork']; //Your input, perhaps $_POST['textbox'] or whatever
$rpltxt = "$1";  // Replacement string
echo preg_replace($ptn, $rpltxt, $str);
?>

我收到了这个错误

Warning: preg_replace(): Unknown modifier '/'

如何解决这个问题 http://prntscr.com/ex29j2

2 个答案:

答案 0 :(得分:0)

您在模式中间使用未转义的斜杠:// 第一个斜杠定义模式结束,第二个斜杠因此被解释为修饰符。 逃避两者:

/(?:[a-z]{4,5}:\/\/[a-z.0-9]*\/)?([a-z.\?_=]*)([0-9]*)/

答案 1 :(得分:0)

逃避斜杠:

$ptn = "/(?:[a-z]{4,5}:\/\/[a-z.0-9]*\/)?([a-z.\?_=]*)([0-9]*)/";  // Regex
//              here __^ ^

或使用其他分隔符

$ptn = "~(?:[a-z]{4,5}://[a-z.0-9]*/)?([a-z.?_=]*)([0-9]*)~";  // Regex