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

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

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

操作步骤

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

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

  3. 将语言选择为 Python 3

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


Python 表达式代码

主表达式:

python

复制代码

extract_chinese(!字段名称!)

代码块:

python

复制代码

import re

def extract_chinese(input_string):
# 如果字段值为空,返回空字符串
if input_string is None:
return ''
# 使用正则表达式提取汉字
chinese_chars = re.findall(r'[\u4e00-\u9fff]+', input_string)
# 将提取的汉字列表拼接成单个字符串
return ''.join(chinese_chars)


代码说明

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

  2. 正则表达式 [\u4e00-\u9fff]+

  • 匹配范围是 Unicode 中的中文字符(汉字)。

  • + 表示匹配一个或多个连续的汉字。

  • return ''.join(chinese_chars)

    • 将提取出的汉字拼接为一个字符串。

    • 如果需要用空格或逗号分隔汉字,可以改为 return ' '.join(chinese_chars)return ','.join(chinese_chars)

  • 空值处理:如果字段值为空(None),直接返回空字符串,避免报错。


  • 示例

    输入字段值:

    • abc123中国中国

    • 汉字123English汉字

    • 123456 → (空)

    • 你好世界123你好世界

    结果:

    执行计算后,新字段中只保留原始字段中的汉字。


    扩展

    如果你需要进一步处理提取的汉字,例如统计数量或添加分隔符,可以基于此代码进行拓展。例如,返回汉字个数:

    python

    复制代码

    def extract_chinese_count(input_string):
    if input_string is None:
    return 0
    chinese_chars = re.findall(r'[\u4e00-\u9fff]', input_string)
    return len(chinese_chars)

    希望这段代码能帮到你!如果有更多需求,随时告诉我。

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