西班牙
斯潘4
我正在尝试从属性项中删除额外的空格和其他字符。我找到了一个小脚本来完成这项工作,但是用的是python。
例如:
点名称(处理前)
B C银行,梦幻城
点名称(处理后)
ABC银行,梦之城
我能够检测到有这些额外空间的点,我正试图将这些传递给pythoncaller transformer。
我想在python调用者中使用这个语法。有人能帮我吗?
导入re string4=“POI_Name”打印(re.sub('+','',string4))
谢谢你事先的帮助!!:)
使用regex的字符串替换程序可能是一种更直接的替换方法。虽然我不认为你的正则表达式做你想做的。
((?<=[A-Z])\s(?=[A-Z]\b));(\s(?=\,))
如果你想去掉单个字母之间的空格,而不是单词之间的空格,你需要一些类似的东西。这将删除前面有一个字符,后面跟着一个字符,并且在逗号之前的空格。这适用于您的单个示例,但取决于数据中的其他值,您可能需要一些稍微不同的值。
如果您真的想使用pythoncaller(*请注意稍微不同的regex)
导入fme import fmeobjects import re def processFeature(feature):string4=feature.getAttribute('POINT_NAME')newpointname=(re.sub('(?<=[A-Z])\s(?=[A-Z]\\b));(\s(?)?=\,)','',string4)特性.setAttribute('NEW_POINT_NAME',newpointname)
您好!@埃戈姆,
我试过pythoncaller语句,但它给了我错误
“Python异常
我编辑了代码以传递字符串而不是list对象,现在它工作正常了。
import fme import fmeobjects import re def processFeature(feature):string4=feature.getAttribute('POINT_NAME')newpointname=“”用于newpointname中的行:用于行中的单元格:newpointname=(re.sub('(?<=[A-Z])\s(?=[A-Z]\\b));(\s(?)?=\,)','',string4)特性.setAttribute('已更正的点名,newpointname)
再次感谢基金会!
干杯,
日本央行
?2019安全亚搏在线软件公司|合法的