Regex SAS:任何语言中单词字符的正则表达式

Regex SAS:任何语言中单词字符的正则表达式,regex,sas,Regex,Sas,假设您有可用的twitter数据 例如,有以下推文: RT@Mydy#u Rabycad:(评论中的英文)TRACK#1 Mantra,内波利 波斯瓦特纳·斯洛沃(posvátnéslovo)是一位内扎波米纳特(nezapomínat)。Aťse děje 科科利 用清洁剂清洗,以便进一步处理 clean_text = prxchange("s/[^\w#@]/ /",-1,text); RT@Mydy_Rabycad英语评论曲目#1咒语neboli posv tn 斯洛伐克共和国是一个新的国

假设您有可用的twitter数据

例如,有以下推文:

RT@Mydy#u Rabycad:(评论中的英文)TRACK#1 Mantra,内波利 波斯瓦特纳·斯洛沃(posvátnéslovo)是一位内扎波米纳特(nezapomínat)。Aťse děje 科科利

用清洁剂清洗,以便进一步处理

clean_text = prxchange("s/[^\w#@]/ /",-1,text);
RT@Mydy_Rabycad英语评论曲目#1咒语neboli posv tn 斯洛伐克共和国是一个新的国家

正如你所看到的,一个人正在失去很多有价值的单词字符。 我想得到的是:

RT@Mydy_Rabycad英语评论曲目#1咒语neboli posvátnéslovo kteréeba si opakovat nezapomínat aťse děje cokoli

一般来说,我想删除任何语言中不属于任何单词的所有额外字符,如标点符号、微笑等。。。目标是标记一些随机的twitter数据

所以示例代码(不起作用)是

那么,在SAS(9.4 T1M6)中是否有一个类似于英语的控制序列,即类似于\p{L}的控制序列,允许对每种语言中的每个字母数字字进行子集划分

正如评论中所建议的,下面的正则表达式也不起作用

prxchange("s/(u?)[^\w#@]/ /",-1,text);
prxchange("s/[^\p{L}#@]/ /",-1,text);
此外,使用“ka”修饰符时,compress函数不会产生所需的结果

compress(text,' ','ka');
该问题与SAS相关,但与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.*/
简短版本:

这将删除您在
“():”中添加/替换的任何字符。“


不确定,但可能使用unicode
(?u)[^\w#@]
使用“ka”修饰符进行压缩怎么样?
“s/[^\p{L}0-9#@]/”
有效吗?@johannesBleher你能编辑你的帖子以包含你想要的输出吗?这样我们可以有效地帮助你,而不是猜测你想要什么。对不起,我会的。我目前是afk。在没有regex原始答案的情况下。我会接受这个非正则表达式的蛮力是正确的。谢谢你的回答!
 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;