2009-12-25 61 views
1

一个简单的(我希望)正则表达式的问题:正则表达式替换的document.all

我有,我需要用document.getElementById('string')更换每document.all['string']几页。

我可以使用Visual Studio或Notepad ++来替换正则表达式,我只需要正确的表达式。

感谢您的任何援助, 盖伊

回答

2

记事本++:

搜索:

document\.all\[\'(.*)\'\] 

替换为:

document.getElementById('\1') 
+0

非常感谢!刚刚救了我一堆搜索 - 替换 - 测试-sh-sh!t操作:) – 2009-12-25 05:23:17

+0

小心这个。 '。*'很贪婪,可能会将比赛延伸到你想要的地方。它会吞噬一切,直到'']'的最后一个实例。 – Asaph 2009-12-25 05:33:48

2

更换

document\.all\['(.*?)'\] 

通过

document.getElementById('$1') 

括号是用来识别$1用于打印第一组的值。反斜杠用于转义正则表达式中的特殊字符。对于剩余它是非常微不足道的。

希望这会有所帮助。

+0

不要忘记在'document.all'中转义'.'。 – Asaph 2009-12-25 05:11:41

+0

我明白了。更新它。 – BalusC 2009-12-25 05:12:42

+0

感谢您的帮助,但这不适用于文本编辑器或Visual Studio上下文(刚刚尝试两种) – 2009-12-25 05:18:15

1

搜索:

document\.all\['([^']+)'\] 

替换:

document.getElementById('\1') 
+1

[^']的最佳答案原因 – 2009-12-25 05:17:45

+0

@ x2:因此,您不熟悉* non-greedy *运算符'。*?',如我的示例中所示? – BalusC 2009-12-25 05:24:25

+0

@BalusC:perl可以,但不适用于记事本++中的内置搜索(不知道vs vs) – 2009-12-25 05:30:45