ArcGIS Pro 字段是字符串,有数字,英文和汉字,只提取数字,字段计算器中Python怎么写

文摘   2024-11-24 07:55   云南  

在 ArcGIS Pro 的字段计算器中,可以使用 Python 表达式结合正则表达式来提取字符串字段中的数字。以下是具体的操作步骤和代码示例:

步骤:

  1. 打开 ArcGIS Pro 的字段计算器。

  2. 选择目标字段或创建一个新字段来存储提取的数字。

  3. 选择计算语言为 Python 3

  4. 在代码框中输入以下内容。

Python 表达式代码

在字段计算器中,主表达式可以直接调用自定义函数来提取数字:

主表达式:

python

复制代码

extract_numbers(!字段名称!)

代码块:

python

复制代码

import re

def extract_numbers(input_string):
# 如果字段值为空,返回空字符串
if input_string is None:
return ''
# 使用正则表达式提取数字
numbers = re.findall(r'\d+', input_string)
# 将提取的数字列表拼接为单个字符串,数字之间用空格分隔(可根据需要调整分隔符)
return ' '.join(numbers)

说明:

  1. !字段名称!:将其替换为你实际的字段名称。

  2. 正则表达式 \d+:用于匹配字符串中的一个或多个连续数字。

  3. 返回值:提取出的所有数字以空格分隔。如果只需要第一个数字,可以修改代码为 return numbers[0] if numbers else ''

  4. 空值处理:确保字段中有空值时不会导致错误。

示例:

假设字段值为:

  • abc123中国123

  • 456def456

  • 78汉字9078 90

执行计算后,新字段会仅保留这些数字。

扩展:

如果你需要保留原始字段的顺序或者根据某些条件提取特定的数字,可以进一步调整正则表达式或代码逻辑。

GISAI
ArcGIS培训和二次开发
 最新文章