VS Regex可以“查找所有”忽略空格和换行符

时间:2019-05-11 00:15:17

标签: c# regex visual-studio

我正在使用Visual Studio“查找和替换”窗口使用正则表达式搜索以下模式:INNER JOIN T2,而忽略任何空格或换行符。 Here是.NET测试人员,实际上可以按预期工作。但是,它起作用的原因是因为我选中了右侧的“ 单行”复选框。

在Visual Studio中,此正则表达式不起作用,仅匹配同一行上的结果。如何复制“单行”复选框的作用?

这是上面链接的正则表达式模式:

(inner)(?([^\r\n])\s).*(join)(?([^\r\n])\s).*(T2)

这是仅在选中“单行”复选框时才有效的输入,而Visual Studio没有此复选框。

SELECT * FROM T1 INNER    join
   T2 ON...

编辑

要对问题进行讨论(如果尚未弄清楚),目的是将INNER JOIN和{{1 }}表

1 个答案:

答案 0 :(得分:3)

此正则表达式应匹配:

inner(\r\n)*\s+join(\r\n)*\s+T2

替换表达式可以为LEFT OUTER JOIN T2

说明:

  • inner-匹配文本“内部”
  • (\r\n)*\s+-匹配任意数量的换行符(包括无换行符)和至少一个空格
  • join-匹配文本“ join”
  • (\r\n)*\s+-匹配任意数量的换行符(包括无换行符)和至少一个空格
  • T2-匹配文本“ T2”

编辑:正如评论中指出的那样,这种更简单,更优雅的正则表达式可以做到这一点:

inner[\s\r]+join[\s\r]+T2

示例:

查找:

enter image description here

替换后:

enter image description here