【问题标题】:Notepad++ regular expression find and replace $_REQUEST with $_GET but a more secureNotepad++ 正则表达式查找 $_REQUEST 并将其替换为 $_GET 但更安全
【发布时间】:2009-09-10 19:28:01
【问题描述】:

我正在做的是在一个大型程序中将所有$_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 步。

【问题讨论】:

  • 你能先展示一个源文本的例子,然后再展示一个目标文本的例子吗?

标签: regex notepad++


【解决方案1】:

说过要使用这个正则表达式:

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

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

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

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

【讨论】:

  • Notepad++的几乎所有功能似乎都只完成了一半,不知道大家是怎么用那个编辑器的。
【解决方案2】:

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

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

当我搜索notepad++和alternation时,我正在处理哪个正则表达式。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-28
    • 2015-01-11
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多