BizTalk 2016中如何移除单词间的空格?
BizTalk 2016 移除字符串单词间空格的实现方法
内置Functoid实现方案
BizTalk 2016没有专门针对“移除单词间空格”的单一内置functoid,但可以通过String Replace内置functoid组合配置实现需求:
- 操作步骤:
- 从工具箱的「String Functoids」组中拖入String Replace functoid到映射设计界面
- 将源Schema的目标字符串字段连接到该functoid的第一个输入参数(待处理的源字符串)
- 为functoid的第二个输入参数传入空格字符(
" ") - 第三个输入参数传入空字符串(
"") - 将functoid的输出端连接到目标Schema的对应字段
通过上述配置,即可将源字符串中的所有空格替换为空,实现类似"Reduced LOS"→"ReducedLOS"的转换效果。
脚本Functoid自定义实现示例
如果需要更灵活的处理逻辑(比如仅移除单词字符间的空格、保留首尾空格等),可以使用Scripting Functoid编写自定义C#代码:
配置步骤:
- 从工具箱的「Advanced Functoids」组中拖入Scripting functoid到映射界面
- 双击functoid打开配置窗口,选择「Inline C#」作为脚本类型
- 输入以下自定义代码:
public string RemoveWordSpaces(string input) { if (string.IsNullOrEmpty(input)) return input; // 移除所有空格,匹配示例需求 return input.Replace(" ", ""); // 若需仅移除单词间空格(保留首尾空格),可替换为正则表达式版本: // return System.Text.RegularExpressions.Regex.Replace(input, @"(?<=\S)\s+(?=\S)", ""); }
- 点击确定后,将源字符串字段连接到Scripting functoid的输入端口,再将functoid的输出端口连接到目标Schema的对应字段
代码说明:
- 基础版本使用
Replace(" ", "")直接移除所有空格,完全满足用户给出的示例需求 - 正则表达式版本则可以更精准地仅移除两个非空白字符之间的空格,适合有特殊格式要求的场景
内容的提问来源于stack exchange,提问作者Harsh Shelar
相关产品推荐
相关产品推荐

