使用FInd / Replace在Visual Studio中重新排序属性

时间:2015-04-13 08:47:04

标签: asp.net regex visual-studio visual-studio-2012 attributes

在一个旧的webforms应用程序的数百个页面中,有一些以HTML格式声明的GridViews

<asp:GridView GridLines="None" ..... >

其中每个 GridView标记都以<asp:GridView GridLines="None"

开头

这是一个黑暗的镜头,但我想知道是否可以使用搜索和放大器中的RegEx将GridLines属性移动到标签的末尾。更换?例如,

<asp:GridView GridLines="None" .....>

会变成

<asp:GridView ..... GridLines="None">

.....表示可以存在的许多其他属性,这些属性不以任何特定顺序声明。

更新

某些GridView控件使用资源文件数据来允许多语言输出。此标记已损坏,RegEx可以解释该吗?

<asp:GridView GridLines="None" ..... EmptyDataText="<%$ Resources: Reports, NoResultsFound %>" .....>

1 个答案:

答案 0 :(得分:1)

是的,你可以。要解决非序列化><的问题,您可以使用

  GridLines="None"([^<>]*(?>(?>(?'open'<)[^<>]*)+(?>(?'-open'>)[^<>]*)+)+(?(open)(?!)))

的更换:

 $1 GridLines="None"

请参阅demo here(转到底部的Context标签查看替换结果。)