从字段计算中的字母数字值中删除数字字符?


9

我有一个包含以下格式的字母数字值的字段:

A-AA00

有时他们也是

A-AAA0

我需要一个Python脚本,可以将其放入ArcMap 10的字段计算器中,该脚本至少将删除数字字符,并重新训练字母和连字符。这样,例如:

A-AA0

变成这个:

A-AA

我还想用另一个字段中的数字字符替换数字字符。这个Stack Exchange条目解决了这个问题,但是字符串在数字前有一个空格,可以用于拆分和索引...我的字符串不是那么容易构造的。

Answers:


17

我会使用正则表达式。如果将以下内容放在计算器的代码块部分中,它将返回一个字符串,该字符串将除去所有数字,无论它们是什么:

import re
def strip_digits(s):
    return re.sub("\d+", "", s)

然后可以在计算框中将其调用为:

strip_digits(!column_name!)

如果要替换字符,请在函数中为替换字符添加另一个参数,然后将其替换为空字符串。


4

只是用地带

s="AAAA-000"
print s.strip("0, 1,2,3,etc")
AAAA-

4

我也在地图绘制中心(arcgis.com)中找到了它。
资源中心文本管理工具

它是为9.2 / 9.3编写的旧代码。不确定适用于10.x的描述为...

  1. 批量查找和替换:此工具使用在“查找/替换”表中指定的替换字符串填充文本字段中的字符串。这对于标准化标签字符串或引入和执行标准缩写很有用。
  2. 将文本转换为适当的大小写:此工具将一个字段(假定全部为大写或全部小写)中的文本字符串转换为另一(新)字段中的适当大小写(大小写混合)文本字符串。编写此工具是为了处理东北的NE等常见缩写,因此它不会以Ne出现。
  3. 提取高速公路盾牌标签的高速公路编号:将高速公路名称的数字部分添加到另一个文本字段。

所有这些工具都是用Python编写的,可以进行修改以满足您的任何特定需求。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.