使用正则表达式查找和替换Dreamweaver正则表达式

时间:2012-12-03 01:48:48

标签: php regex dreamweaver

我使用正则表达式执行查找并替换为Dreamweaver。我遇到了一些困难。这就是我在页面中的内容(请注意,语法错误,因为我需要在字符串的末尾添加一个括号。)

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']);      
$name=htmlspecialchars(mysql_real_escape_string($_POST['name']);    

我正在尝试执行查找和替换将产生这个:

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']));                                                    
$name=htmlspecialchars(mysql_real_escape_string($_POST['name']));

这是我用来执行查找的内容。它似乎正在替换太多文本(它从$ email变量中的$ _POST开始,但一直持续到$ name变量的$ _POST)

  • 查找:\ $ _ POST ['([^<] *)']
  • 替换:$ _POST ['$ 1'])

我最终得到了这个:

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']);      
$name=htmlspecialchars(mysql_real_escape_string($_POST['name']));   

正如您所看到的,它只修复了最后一个实例(这是因为find函数从$ _POST ['email']一直选择两行到$ _POST ['name'])。有想法该怎么解决这个吗?谢谢!

1 个答案:

答案 0 :(得分:1)

添加问号以使其不贪婪。此外,您需要转义要匹配的[和]字符。

Find: \$_POST\['([^<]*?)'\]
Replace: $_POST['$1'])
或者,或者,用户是'字符而不是&lt;与引号中的值匹配的字符:

Find: \$_POST\['([^']*)'\]
Replace: $_POST['$1'])