0

我正在做的是在一个大型程序中用虚线下方的第一行或第二行$_REQUEST['var']替换所有内容。mysql_escape_string($_REQUEST['var'])

现在,我已经弄清楚了这么多正则表达式,但我想让它更简单。而不是必须先运行第一个然后第二个,我想一起运行一个。我试过了,但没有用。

(mysql_escape_string\()*$_REQUEST\[\'([^']*)\'\]\)(\)*)

所以下面是有效的,但又必须做两次。

$_REQUEST\[\'([^']*)\'\]

mysql_escape_string\($_REQUEST\[\'([^']*)\'\]\)

(isset($_GET['\1'])?mysql_real_escape_string($_GET['\1']):false)

(isset($_POST['\1'])?mysql_real_escape_string($_POST['\1']):false)

============================ 更新:是的,经过一番研究,我发现 Notepad++ 不支持大多数正则表达式。我想多走一步不会伤害一个人。这只是懒惰。

*注意:但如果有人想尝试,请随时发表评论。至少它只有 2 步而不是 20 步。

4

2 回答 2

1

说使用这个正则表达式:

mysql_escape_string\(\$_REQUEST\['[^']*'\]\)|\$_REQUEST\['[^']*'\]

...但似乎 Notepad++ 不支持'|'正则表达式搜索中的交替(即管道:)。事实上,似乎有很多基本的正则表达式功能不受支持。这应该是一个简单的任务,但我无法让它在 NPP 中工作。我根本看不到那个编辑器如何声称支持正则表达式搜索。(是的,我知道它继承了 SciTE 的那个特性——我也对它们感到失望。)

如果您想在编辑器中进行真正的正则表达式搜索和替换,我建议您使用EditPad Pro。它的正则表达式风格是现存最好的之一——就功能和特性而言,我认为它仅次于 Perl。它的语法也高度兼容;例如,它支持在 Perl、Python、PHP.NET中发现的所有命名捕获语法的变体。

免责声明:我在 EditPad Pro 中没有任何财务或个人利益;我只是使用它,无法想象没有它的生活。:D

于 2009-09-11T02:56:57.217 回答
0

notepad++ 确实支持交替,但交替项必须包含在 [ ] 中。例如:

(www.mysite.co.uk\/[\/\w]*\/[-.\w]*.[html|css]:)[\s]*.*[/|'|"]([-\w.]*.[gif|jpg|ico]).*

这是我在搜索记事本++和交替时正在处理的正则表达式。

**编辑:好的,它不能正常工作,我收回它。它将 [] 中的字符视为一个类。

于 2010-07-29T14:53:49.780 回答