如何批量查找和删除/替换.resx中的数据?

时间:2014-05-27 07:44:52

标签: regex replace resx

我有一个包含大量.resx文件的解决方案。它们中的许多都有一个特定的元素,我想在每个resx中删除该元素或者批量替换它。

解决方案是在TFS 2010中,因此首选使用Visual Studio来完成工作,这样它也会检出文件,我可以创建shelvesets / do checkins而无需手动检查我需要的文件。 / p>

我可以使用的VS版本是VS2010,VS2012和VS2013(我听说他们的查找/替换功能在每个版本中都有所不同)。

E.g。 foo.resx内容有这个:

<data name="SomeName">
  <value>SomeValue</Value>
</data>
<data name="SomeOther1">
  <value>SomeValue</Value>
</data>
<data name="SomeOther2">
  <value>SomeValue</Value>
</data>

我想要删除名称为&#34; SomeName&#34;的所有数据实例。并离开:

<data name="SomeOther1">
  <value>SomeValue</Value>
</data>
<data name="SomeOther2">
  <value>SomeValue</Value>
</data>

这可能吗?正则表达式?否则?

2 个答案:

答案 0 :(得分:1)

在Notepad ++中,您可以使用(ctrl + h,正则表达式搜索模式):

<data name="SomeName">\r\n.*\r\n<\/data>\r\n

由于VS所谓的“正则表达式”是一场噩梦,我再也不会回答这类问题了。但是你要去VS 2010:

:b*\<data name="SomeName"\>\n:b*.*\n:b*.*data\>

这不太好。

答案 1 :(得分:0)

我使用的完整解决方案如下:

1)使用TF.exe cmdline签出resx文件(其中本地路径是您要搜索的根目录)

tf checkout /recursive *.resx

2)然后使用此正则表达式字符串在Notepad ++中使用find / replace删除该属性:

\r\n..<data name=\"SomeValue\"*\>.*?</data>

3)然后撤消未使用TFS Power Toys更改的resx:

tfpt uu . /noget /recursive

完成。