span8
span4
我试图从属性的条目中删除多余的空格等字符。我能找到小脚本,没有工作,但蟒蛇。
例如:
部分一致(处理前)
A B C银行,DreamTown
部分一致(加工后)
ABC银行,DreamTown
我能够检测哪些有这些额外的空格点和我试图通过这些上pythoncaller变压器。
我想用这个语法在Python调用者。有人可以帮我吗?
进口重新串,4 = “POI_NAME” 打印(应用re.sub( '+', '',串,4))
感谢所有帮助提前!:)
替代品使用正则表达式的字符串可能是做替代了更直接的方式。虽然我不认为你的正则表达式做你希望它是什么。
(?(<= [A-Z])\ S(= [A-Z] \ B)?)|(?:\ S(= \,))
如果你想删除单个字母,但没有的话,你会需要这样的东西之间的空间。这是去除由单个字符之前和之后由一个字符和空格的逗号之前。本工程为您简单的例子,但是取决于你的数据的其他值,你可能需要的东西略有不同。
如果你真的想用一个pythoncaller(*注意略有不同的正则表达式)
import fme import fmeobjects import re def processFeature(feature): string4 = feature.getAttribute('POINT_NAME') newpointname = (re.sub('((?<=[A-Z])\s(?=[A-Z]\\b))|(\s(?=\,))', '',string4)) feature.setAttribute('NEW_POINT_NAME', newpointname)
你好@egomm,
我试过pythoncaller语句,它是给我的错误
“Python异常
我编辑的代码,通过字符串,而不是列表对象,现在它工作正常。
进口FME进口fmeobjects导入重新DEF processFeature(功能):串,4 = feature.getAttribute( '部分一致')newpointname = “” 在newpointname行:用于行细胞:newpointname =(应用re.sub('((<= [A-Z])\s(?=[A-Z]\\b))|(\s(?=\,))', '',string4)) feature.setAttribute('Corrected_POINT_NAME', newpointname)
再次感谢您的基础!
干杯,
BokaJ
©2019安全亚搏在线软件公司|法律