Regex组件SSIS包

时间:2013-09-16 14:18:15

标签: c# regex ssis

我有一点奇怪的要求我的表具有各种特殊字符的值,我需要编辑它们以满足客户要求。

我的表格如下

 **Name**
.xy z., Jr
Jr, .xy z., Jr
Jr. xy z., Sr
,Jr xy, z, Jr
.Jr .xy, z., Jr
Sr\ .xy z., Jr
Ser, xy , z., Jr
./Sr xy,/ z., Jr
<<sr, xy z, Jr
SR, .xy z., Jr
[]sa, .xy z., Jr
ps xy z., Jr
asa xy z., Jr
asad .xy z., Jr
bs/ .xy z., Jr
p[], .xy z., Jr
lold.,.xy z., Jr
scs., .xy z., Jr
losdj .xy z., Jr
.xy z., Jr
.xy./z., Jr
sa .xy z., Jr

我的结束专栏应该是

Jr,xy,z,Jr. 

或任何此形式只应删除特殊字符。

我想过拆分列然后删除特殊字符
但问题是,当我有两个连续的特殊字符时,我会有一个特殊字符的列,我想知道如果有办法解决它。

1 个答案:

答案 0 :(得分:1)

也许尝试用这个正则表达式替换?

^(?=.*?(\w+)\W*(\w+)\W+([JS]r)$).*

并替换为:

$3,$1,$2,$3.

regex101 demo

如果字符串中的Sr是拼写错误,那么您可以执行以下操作:

^(?=.*?(\w+)\W*(\w+)\W+Jr$).*

并替换为:

Jr,$1,$2,Jr.

编辑:好的,因为可能缺少部件,请尝试:

string output = Regex.Replace(input, @"^\W*(\w*?)\W*(\b\w+\b)\W*(\b\w+\b)\W*(\w*)$", @"$1,$2,$3,$4.").Trim(new Char[] {','});