在 ArcGIS Pro 的字段计算器中,可以使用 Python 表达式结合正则表达式来提取字符串字段中的数字。以下是具体的操作步骤和代码示例:
步骤:
打开 ArcGIS Pro 的字段计算器。
选择目标字段或创建一个新字段来存储提取的数字。
选择计算语言为 Python 3。
在代码框中输入以下内容。
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)
说明:
!字段名称!
:将其替换为你实际的字段名称。正则表达式
\d+
:用于匹配字符串中的一个或多个连续数字。返回值:提取出的所有数字以空格分隔。如果只需要第一个数字,可以修改代码为
return numbers[0] if numbers else ''
。空值处理:确保字段中有空值时不会导致错误。
示例:
假设字段值为:
abc123中国
→123
456def
→456
78汉字90
→78 90
执行计算后,新字段会仅保留这些数字。
扩展:
如果你需要保留原始字段的顺序或者根据某些条件提取特定的数字,可以进一步调整正则表达式或代码逻辑。