如何在字段计算器中使用替换字符串功能?


12

在属性表中,我试图使用'replace'函数将一个字符串替换为另一个字符串。例如,有许多功能,其“名称”字段包含字符串“(B)”,而我想将其替换为“县”一词。我正在选择“更新现有字段”复选框,并使用以下表达式

 replace( '(B)','(B)','County')

最终结果是,不管字段“ NAME”最初是否包含字符串“(B)”,每个功能的“ NAME”字段都由“ County”替换。任何帮助,将不胜感激。


GrahamD,感谢您的帖子,感谢您的回答。我面临着完全一样的挑战。p缩写为pan。Type_2作为测试列。从表达式框中复制和粘贴的文本:replace(“ Type_2”,“ p”,“ pan”)所有文本和引号都用红色表示。好的按钮变灰。输出预览:表达式无效的解析器错误:(未详细说明)Eval错误:找不到列'p'如果我绕过Type_2和p,我得到的结果完全相同。在黑暗中,我们将不胜感激任何其他建议。谢谢
VeM

Answers:


23
replace( '(B)','(B)','County')

告诉QGIS将“(B)”中的“(B)”替换为“国家”。

你要

replace("Name",'(B)','Country')

=将“名称”中的“(B)”替换为“国家”。

请注意,双引号表示字段名称,单引号则表示静态字符串。这些是不可互换的。


@GrahamD如果它解决了您的问题,请接受答案
underdark

7

正确的语法是replace([field_name],'(B)','Country')


3

首先,打开字段计算器,然后从字符串选择中选择替换功能,在此处输入图片说明如下图所示:

其次,告诉QGIS替换替换(“字段名称”,“(B)”,“国家”)。例如在这种情况下;替换(“ MES_TIP”,“ T”,“ Rock”):

第三,请选择输出字段类型:text(string),然后确定字段名称;在此处输入图片说明

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.