如何将名称拆分为FirstName和LastName?
有一个分割字段转换函数,但只按给定的分隔符拆分字段。除了在某些情况下数据将具有3个名称,甚至是4个名称之外,这将是有效的。因此,如果您不知道要提供多少名称,则没有动态获取姓氏的方法。
假设输入字段FullName包含以下4行:
John Doe
John Doe Smith
John Doe Smith Jackson
John
拆分应该是空格字符,输出应该是:
对于所有4行,FirstName应该是John(显然)
但是LastName输出应该是:
Doe
Smith
Jackson
<null>
如果需要MiddleName(不紧急但有利于信息目的),输出将是:
<null>
Doe
Not Sure - may have to clarify with client if that comes up
<null>
答案 0 :(得分:1)
使用带有正则表达式的正则表达式评估组件可以解决此任务
^([^ ]+).*?([^ ]+)?$
第一组([^ ]+)
总是选择字符串中的第一个名称,因为开头是^
。可选的第二组([^ ]+)?
选择字符串中的姓氏,因为最后是$
。表达式.*?
选择介于两者之间的任何东西(包括空字符串)。请注意,它必须是懒惰的(使用'?'),以便它不会从可选的第二组中窃取字符,因为?
也是懒惰的。
测试转换看起来像这样
正则表达式组件的详细信息如下所示
请注意,包含全名的字符串不得在其中包含前导或尾随空格。 字符串操作组件修剪字符串负责处理。