Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 替换字符串多个部分的正则表达式(在Visual Studio 2012中)_Visual Studio 2012 - Fatal编程技术网

Visual studio 2012 替换字符串多个部分的正则表达式(在Visual Studio 2012中)

Visual studio 2012 替换字符串多个部分的正则表达式(在Visual Studio 2012中),visual-studio-2012,Visual Studio 2012,基本上,我正在更新一个旧的web应用程序,使其与多浏览器兼容。到处都是原始程序员使用过的地方- document.all.element 据我所知,“.all”只是IE,在IE 4中引入。IE5中引入了符合标准的“.getElementById”函数。我想将上述声明的实例更改为- document.getElementById("element") 我如何形成这个正则表达式,特别是使用Visual Studio的“查找并替换”对话框?我认为您不需要正则表达式 在Visual Studio 2

基本上,我正在更新一个旧的web应用程序,使其与多浏览器兼容。到处都是原始程序员使用过的地方-

document.all.element
据我所知,“.all”只是IE,在IE 4中引入。IE5中引入了符合标准的“.getElementById”函数。我想将上述声明的实例更改为-

document.getElementById("element")

我如何形成这个正则表达式,特别是使用Visual Studio的“查找并替换”对话框?

我认为您不需要正则表达式


在Visual Studio 2010及更早版本的文本替换对话框中,只需将
document.all.element
替换为
document.getElementById
,正则表达式语法如下:

要标记表达式,请使用
{}
,要引用第一个标记以替换使用
\1

在您的情况下,您需要找到:

document\.all\.{[a-zA-Z0-9]+}
并替换为:

document.getElementById('\1')
在Visual Studio 2012中,正则表达式语法已更改为:

document\.all\.([a-zA-Z0-9]+)
document.getElementById('$1')
寻找

[.]all[.]{:i}
并替换为

.getElementById("\1")
圆点
周围的方括号用于确保它不会被解释为元字符(您可以使用
\.
)。
:i
是Visual Studio的标识符符号


替换字符串中的
\1
引用了第一个标记的表达式(即
{:i}
表达式),因此标识符将“粘贴”在双引号内。

我不确定使用Visual Studio 2012 RC是否有问题,但使用大括号无法匹配任何内容

我最后使用了find表达式-

document\.all\.([a-zA-Z0-9]+)
以及替代品

document.getElementById("$1")
“$1”指括号内的表达式


谢谢你们的帮助。

可能是这样,我已经习惯了VS 2010,而你们并没有提到你们在2012年。我本来会提到我在使用2012年,但在这种情况下,我没想到这会有什么不同。现在,我不确定该怎么做,要么编辑我的问题以反映情况(并将我的答案标记为正确),要么保留泛型,因为您的答案(以及dasblinkenlight的答案)对于早期版本的visual studio是正确的。我也不希望这会有所不同,请随意接受您的答案;)在这种情况下不起作用,我需要用括号和引号包围“元素”部分。好的,我明白了。您可以通过索引访问document.all.elements,这不是一个函数是的,
元素
文档的一部分。all.element
是元素名称。所以我想保留它,因为它与元素id相同。Visual Studio 2012的标记不是
()
而不是
{}
?这是VisualStudio的旧版本。