html - 在 Visual Studio 2013 或 2010 中查找并替换多行

标签 html regex visual-studio-2010 replace visual-studio-2013

在 Visual Studio 2013 中,我可以找到如下标签:

<div class="old-title">Different Title for every page</div>

使用

(?i)<div class=(\"old-title\").(?i)(.+?)./div[^>]*>

替换为

<div class="title">$2</div>

我需要搜索并查找多行

                    <div class="class1">
                        <div class="class2"></div>
                        <div class="title">Different Title for every page</div>
                    </div>

并仅替换为单个 div 标题:

<div class="title">$2</div>

最佳答案

hshobby,如果我理解的话,你的问题是关于底部的多行替换。这是你想要的? (如果还需要捕获标题,这是一个简单的调整。)

搜索:

(?is)<div class="class1">[\s\r\n]*<div class="class2"></div>[\s\r\n]*<div class="title">([^<]+)</div>[\s\r\n]*</div>

替换:

<div class="title">$1</div>

如果是这样,这里与您原来的表达有一些差异。首先,我们允许点匹配换行符,以便正则表达式可以跨越多行。这就是(?s)做。由于您稍后打开了不区分大小写的模式 (?i) ,把它放在前面看起来更干净:(?is) 这里重复的一个部分是 [\s\r\n]*字符类,它会占用所有空格和换行符,使我们能够到达您尝试匹配的字符串的下一部分。

最后,标题本身与 [^<]+ 匹配并捕获。其中表示一个或多个不是 < 的字符,允许我们消耗 </div> 之前的所有字符如果标题可以为空,则替换 [^<]+[^<]*

输入:

<div class="class1">
                        <div class="class2"></div>
                        <div class="title">Hi there hsHobby</div>
                    </div>

输出:

<div class="title">Hi there hsHobby</div>

关于html - 在 Visual Studio 2013 或 2010 中查找并替换多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192845/

相关文章:

visual-studio-2010 - 运行已编辑的解决方案时,Visual Studio 2010崩溃

javascript - 折叠多个导航栏 Bootstrap

python - 如何使用正则表达式提取多个字符串

javascript - 返回数组的每个元素的多个 HTML 片段

php - 在删除/替换非单词字符时处理 unicode

用于替换文本中未编码的&符号的 Python 正则表达式

visual-studio-2010 - Visual Studio 不允许我将项目拖放到其中?

c# - VS2010 强积金 : Populating 'Add->New Item...' list for a custom project

javascript - 如何在ng-repeat中显示json的可变键值?

html - 互相转移方 block