首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将级联的VB.NET字符串文本转换为多行字符串。

将级联的VB.NET字符串文本转换为多行字符串。
EN

Stack Overflow用户
提问于 2016-04-14 12:55:41
回答 1查看 391关注 0票数 4

注意:这个问题并不是关于VB.NET本身,而是关于VisualStudio2015Basic编辑器的一个特定特性。

我有一些遗留代码,如下所示:

代码语言:javascript
复制
Dim someText =
    " a " &
    " AND b " &
    " AND cd " &
    " AND efg " &
    " AND h "

由于Roslyn在VB中引入了多行字符串文字,我想将它转换为:

代码语言:javascript
复制
Dim someText =
    " a 
      AND b 
      AND cd 
      AND efg 
      AND h "

(我知道这两者并不完全等价,因为第二个包含额外的换行和空格。这很好。让我们假设内容类似于SQL或HTML,其中附加的空格并不重要。)

现在,我的方法如下:首先,我块选择开头的引号(除了第一个),并用空格替换它们:

代码语言:javascript
复制
Dim someText =
   " a " &
     AND b " &
     AND cd " &
     AND efg " &
     AND h "

然后,我单击a行来修复尾随引号,然后发生以下情况:

代码语言:javascript
复制
Dim someText =
    " a " &
      And b " &
      AND cd " &
      AND efg " &
      AND h "

第一个“和”的大写被搞砸了。

我明白为什么会这样。我甚至用提交了一个错误报告来解决类似的问题。不幸的是,只有当引号总数是奇数时,这个修复(这显然是vs2015Update 2)才有帮助,这里的情况并非如此。

有没有人找到解决办法,在不破坏字符串内容的情况下,将大量连接字符串块重新格式化为多行字符串文本?我知道我可以在全球范围内(Tools/Options/Text /Basic/Advanced)转换格式,但是有更好的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-14 13:04:35

您可以使用“查找”和“替换”。打开正则表达式:

并使用这个短语:

代码语言:javascript
复制
" &\r\n\s*"

这将匹配一行末尾的引号和符号,然后是换行符和任何空格,以及下一行开头的引号:

替换者是:

代码语言:javascript
复制
\r\n

用新行替换匹配的文本。

如果希望保留每行开头的空白,请使用捕获组(括号)在find表达式中捕获该空白:

代码语言:javascript
复制
" &\r\n(\s*)"

并将其放回替换中,使用$1

代码语言:javascript
复制
\r\n$1

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36623799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档