匹配以小写字母和大写字母(或小写字母和大写字母组合)形式出现的字符串
问题描述:
我试图从Stata中可能出现在所有大写字母或全部小写字母中的列中找到一个单词。匹配以小写字母和大写字母(或小写字母和大写字母组合)形式出现的字符串
foreach varlist_cust in "xyz" "XYZ" "XyZ" {
replace cus_tag = strpos(customer_name, "`varlist_cust'") if cus_tag==0
}
是否有更有效的方法进行此分析?也许使用正则表达式?
答
由于Stata具有嵌入lower()
函数,所以不需要正则表达式。见,例如
clear
input str9 customer_name
"Ander2Ed"
"sonu"
"abcXyZcba"
"XYZ"
"zXyZ"
end
gen cus_tag = strpos(lower(customer_name), "xyz")
简单地评价customer_name
变量作为对您正在寻找的小写值小写。
请参阅help lower
和help string functions
了解更多信息。
我不知道stata,但你有没有考虑研究如何使用正则表达式呢?以及如何使用strpos和subinstr的正则表达式。像'/ xyz/i'这样的表达式可以工作 – arseniyandru
我读了很多关于正则表达式的知识,并且我理解如何使用它们来查找特殊字符,但我不确定是否可以在使用它们的不同情况下找到确切的单词。我会尝试你所建议的。 – sonu
对于“列”读取“变量”(对于“STATA”读取“Stata”,已经更正)。 –