注意:这个问题并不是关于VB.NET本身,而是关于VisualStudio2015Basic编辑器的一个特定特性。
我有一些遗留代码,如下所示:
Dim someText =
" a " &
" AND b " &
" AND cd " &
" AND efg " &
" AND h "由于Roslyn在VB中引入了多行字符串文字,我想将它转换为:
Dim someText =
" a
AND b
AND cd
AND efg
AND h "(我知道这两者并不完全等价,因为第二个包含额外的换行和空格。这很好。让我们假设内容类似于SQL或HTML,其中附加的空格并不重要。)
现在,我的方法如下:首先,我块选择开头的引号(除了第一个),并用空格替换它们:
Dim someText =
" a " &
AND b " &
AND cd " &
AND efg " &
AND h "然后,我单击a行来修复尾随引号,然后发生以下情况:
Dim someText =
" a " &
And b " &
AND cd " &
AND efg " &
AND h "第一个“和”的大写被搞砸了。
我明白为什么会这样。我甚至用提交了一个错误报告来解决类似的问题。不幸的是,只有当引号总数是奇数时,这个修复(这显然是vs2015Update 2)才有帮助,这里的情况并非如此。
有没有人找到解决办法,在不破坏字符串内容的情况下,将大量连接字符串块重新格式化为多行字符串文本?我知道我可以在全球范围内(Tools/Options/Text /Basic/Advanced)转换格式,但是有更好的解决方案吗?
发布于 2016-04-14 13:04:35
您可以使用“查找”和“替换”。打开正则表达式:

并使用这个短语:
" &\r\n\s*"这将匹配一行末尾的引号和符号,然后是换行符和任何空格,以及下一行开头的引号:

替换者是:
\r\n用新行替换匹配的文本。
如果希望保留每行开头的空白,请使用捕获组(括号)在find表达式中捕获该空白:
" &\r\n(\s*)"并将其放回替换中,使用$1
\r\n$1

https://stackoverflow.com/questions/36623799
复制相似问题