regex - SAS:任何语言中单词字符的正则表达式
问题描述
假设您有可用的 Twitter 数据。
例如,有以下推文:
RT @Mydy_Rabycad:(评论中的英语)TRACK #1 Mantra,neboli posvátné slovo,které je třeba si opakovat a nezapomínat。Ať se děje cokoli…</p>
清洁它以进行进一步处理
clean_text = prxchange("s/[^\w#@]/ /",-1,text);
RT @Mydy_Rabycad 英语评论 TRACK #1 Mantra neboli posv tn slovo kter je t eba si opakovat a nezapom nat A se d je cokoli
如您所见,一个人正在丢失许多有价值的单词字符。我想得到的是:
RT @Mydy_Rabycad 英语评论 TRACK #1 Mantra neboli posvátné slovo které je třeba si opakovat a nezapomínat Ať se děje cokoli
一般来说,我想删除不属于任何语言的任何单词的所有额外字符,例如标点符号、表情符号等……目标是标记一些随机的 Twitter 数据。
所以示例代码(不起作用)将是
data have;
infile datalines4 delimiter='\\\\\';
length text $200.;
input text $;
datalines4;
RT @Mydy_Rabycad: (English in comments) TRACK #1 Mantra, neboli posvátné slovo, které je třeba si opakovat a nezapomínat. Ať se děje cokoli…
;;;;
run;
data have2;
set have;
clean_text = prxchange("s/[^\w#@]/ /",-1,text);
/*Remove multiple blanks introduced through the above regex*/
clean_text = prxchange("s/\s+/ /",-1,clean_text);
run;
那么在 SAS (9.4 T1M6) 中是否有一个控制序列,例如英语的 \w,即类似于 \p{L} 的东西,它允许对每种语言中的每个字母数字字母进行子集化?
正如评论中所建议的,以下正则表达式也不起作用
prxchange("s/(u?)[^\w#@]/ /",-1,text);
prxchange("s/[^\p{L}#@]/ /",-1,text);
此外,使用 'ka' 修饰符的 compress 函数也不会产生所需的结果。
compress(text,' ','ka');
这个问题与这个有关,但与SAS有关。
解决方案
长版:
只需继续将要保留的特殊字符添加到"abcdefghijklmnopqrstuvwxyz_@#áéříťě"
. 干杯!
Data want;
set have;
New_text=compress(text,"abcdefghijklmnopqrstuvwxyz_@#áéříťě","kis");
run;
/* 'k' keeps the characters in the list instead of removing them.
'i' ignores the case of the characters to be kept or removed.
's' adds space characters (blank, horizontal tab, vertical tab, carriage return, line feed, and form feed) to the list of characters.*/
精简版:
这将删除您添加/替换的任何字符"():."
Data want;
set have;
New_text=compress(text,"():.","i");
run;
推荐阅读
- python - 想要对 while 循环进行矢量化以提高性能(已更新)
- c - 如何反转文本文件中的订单号,然后将反转后的数字写回文本文件
- android - 当 dagger 不自动生成组件代码时对 gradle 文件进行故障排除
- clojure - 如何使用 Clojure CLI (tools.deps) 和 figwheel-main 设置 nREPL
- gradle - ubuntu 18 ./gradlew 命令失败
- actionscript-3 - addchild 影片剪辑出现在错误的场景中
- python - 从包含字节数据的字符串中提取字节
- c - 对于数字之间的循环计数
- google-apps-script - Google Apps 脚本:InsertImage() 函数不起作用
- if-statement - Lua 5.2.4:如果语句语法错误,我找不到我的代码有什么问题