专栏名称: 连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
目录
相关文章推荐
高分子科学前沿  ·  同济大学AFM:限域效应优化电化学膜中微污染 ... ·  19 小时前  
高分子科技  ·  北化贾晓龙/杨小平团队、南昆大王浩团队 ... ·  2 天前  
高分子科技  ·  南京林业大学陈楚楚 Carbohyd. ... ·  3 天前  
高分子科技  ·  中科院理化所江雷院士、王京霞研究员团队 ... ·  5 天前  
51好读  ›  专栏  ›  连享会

字符函数ustrregexm():文字变量匹配中的英文字母大小写问题

连享会  · 公众号  ·  · 2025-02-22 22:00

正文

👇 连享会 · 推文导航 | www.lianxh.cn

图片
图片

作者: 连玉君 (中山大学)
邮箱: [email protected]

温馨提示: 文中链接在微信中无法生效。请点击底部 「阅读原文」 。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 问题背景

  • 2. 例子

  • 3. 总结

  • 4. 补充说明

  • 5. 相关推文



1. 问题背景

处理文字变量时,经常找出包含特定关键词的观察值。若希望查询过程中对英文字母的大小写不敏感,可以使用 ustrregexm() 字符函数,只需 ustrregexm(var, key, 1) 将第三个填项设定为 1 即可。

后文介绍的几个字符函数,都可以在 [FN] string_functions (网页版) 查到其语法和使用说明。

2. 例子

我们先手动生成一份虚构数据:

clear 
input str10 car
"Audi"
"audi"
"AUDI"
"Audi-Q7"
"TT-AuDI"
end

接下来,对比一下 strpos() , ustrregexm() 等函数的差异:

local key "Audi"
// local key "audi"

gen strpos = strpos(car, "`key'")
gen strmatch = strmatch(car, "`key'")
gen ustr_m0 = ustrregexm(car, "`key'")
gen ustr_m1 = ustrregexm(car, "`key'", 1)
gen regexm = regexm(car, "[Aa][Uu][Dd][Ii]")

list , clean noobs

结果如下:

. list , clean noobs 

car strpos strmatch ustr_m0 ustr_m1 regexm
Audi 1 1 1 1 1
audi 0 0 0 1 1
AUDI 0 0 0 1 1
Audi-Q7 1 0 1 1 1
TT-AuDI 0 0 0 1 1

在最后一列中,虽然我们使用 regexm() 函数也可以达到相同的效果,但需要耐心设定正则表达式,故而缺乏通用性。

3. 总结

目前看来,若需在字符串查询或匹配时忽略英文字符大小写差异,使用 ustrregexm(s,re[,noc]) ( [ FN] f_ustrregexm ) 是最佳选择。

4. 补充说明

Note: 本文中的帮助文件链接可以使用 ihelp 命令快捷获取:

*-安装
ssc install ihelp, replace // 若已安装,请跳过此行

产生 PDF 帮助文件链接 [FN] string_functions 网页版 的命令如下:

. ihelp string function, m
[**[FN]** string_functions](https://www.stata.com/manuals/fnstringfunctions.pdf)

. ihelp string function, m web
[**[FN]** string_functions](https://www.stata.com/help.cgi?string_functions)

产生 HTML 帮助文件链接 [FN] f_ustrregexm 的命令如下:

. ihelp f_ustrregexm, m web
[**[FN]** f_ustrregexm](https://www.stata.com/help.cgi?f_ustrregexm)

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 字符 正则
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题: Stata程序
    • 连玉君, 2021, Stata错误信息-stacktracenotavailable:安装路径中不要包含中文字符和空格 , Blog No.539.
    • 连玉君, 2020, 字符编码问题三个不可见的字符(0xEF-0xBB-0xBF,即BOM) , Blog No.423.
  • 专题: 数据处理
    • 李依, 2022, Stata数据处理:将字符变量编码为数值变量-encoder , Blog No.950.
    • 陈勇吏, 2020, 七条建议:用Stata处理文字变量和字符变量 , Blog No.279.
    • 林佳辉, 2020, Stata数据处理:字符型日期变量的转换 , Blog No.319.
  • 专题: 文本分析-爬虫
    • 梁淑珍, 2022, Stata:正则表达式教程 , Blog No.968.
    • 游万海, 2021, 用正则表达式整理文献:正文与文末一一对应 , Blog No.547.
    • 游万海, 2020, Stata爬虫-正则表达式:爬取必胜客 , Blog No.287.
    • 连享会, 2020, 在VisualStudio(vsCode)中使用正则表达式 , Blog No.10.
    • 游万海, 2020, Stata:正则表达式和文本分析 , Blog No.35.
    • 连享会, 2020, 正则表达式语言-快速参考 , Blog No.81.


图片

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!







请到「今天看啥」查看全文