2

我想使用 C++ 正则表达式类来转

SELECT TableOne.ColumnOne, TableOne.@ColumnTwo, TableOne.ColumnThree FROM TableOne WHERE TableOne.@ColumnTwo ='abc'

进入

SELECT TableOne.ColumnOne, TableOne.ColumnThree FROM TableOne WHERE TableOne.ColumnTwo ='abc'

基本上,想做以下

(1)在“FROM”之前删除类似“TableOne.@ColumnTwo”的任何内容

(2)删除“FROM”后的任何“@”

有人可以给我一些启示吗?似乎没有直接的两个人可以在旅途中完成所有这些工作。

4

1 回答 1

0

描述

正则表达式:^(.*?)TableOne[.]@ColumnTwo,\s+(.*?)[@](.*?)$ 替换为:\1\2\3

在此处输入图像描述

例子

这是添加的 C# 示例以显示正则表达式的工作原理。

using System;
using System.Text.RegularExpressions;
namespace myapp
{
  class Class1
    {
      static void Main(string[] args)
        {
          String sourcestring = "SELECT TableOne.ColumnOne, TableOne.@ColumnTwo, TableOne.ColumnThree FROM TableOne WHERE TableOne.@ColumnTwo ='abc'";
          String matchpattern = @"^(.*?)TableOne[.]@ColumnTwo,\s+(.*?)[@](.*?)$";
          String replacementpattern = @"\1\2\3";
          Console.WriteLine(Regex.Replace(sourcestring,matchpattern,replacementpattern,RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline));
        }
    }
}

$sourcestring after replacement:
SELECT TableOne.ColumnOne, TableOne.ColumnThree FROM TableOne WHERE TableOne.ColumnTwo ='abc'
于 2013-06-03T12:46:10.363 回答