R 如何识别没有英文字母、数字和“的字符串”_&引用;然后替换剩下的?

R 如何识别没有英文字母、数字和“的字符串”_&引用;然后替换剩下的?,r,regex,R,Regex,我有以下数据 s <- c("コハニー", "Cat", "Blue", "زبان","D-1") 我使用了以下代码,但它无法识别\uu和-。我如何在正则表达式中澄清\uuu和- s[!grepl('^[A-Za-z0-9_]+$', s)] <- 'ABC' 您只需要在末尾添加-和,因此它应该是'^[A-Za-z0-9.-]+$ 我总是发现它对测试这些问题和学习正则表达式非常有帮助 s您只需要在末尾添加-和,因此应该是'^[A-Za-z0-9.-]+$ 我总是发现它对测试这些

我有以下数据

s <- c("コハニー", "Cat", "Blue", "زبان","D-1")
我使用了以下代码,但它无法识别
\uu
-
。我如何在正则表达式中澄清
\uuu
-

s[!grepl('^[A-Za-z0-9_]+$', s)] <- 'ABC'

您只需要在末尾添加
-
,因此它应该是
'^[A-Za-z0-9.-]+$

我总是发现它对测试这些问题和学习正则表达式非常有帮助


s您只需要在末尾添加
-
,因此应该是
'^[A-Za-z0-9.-]+$

我总是发现它对测试这些问题和学习正则表达式非常有帮助


s为了可读性,我建议使用[:alnum:]捕获字母数字字符,然后是要保留的显式非字母数字字符(例如“-”),如下所示:

s <- c("コハニー", "Cat", "Blue", "زبان","D-1")
s[!grepl('^[[:alnum:]_-]+$', s)] <- ''
s

s为了可读性,我建议使用[:alnum:]捕获字母数字字符,然后是要保留的显式非字母数字字符(例如“-”),如下所示:

s <- c("コハニー", "Cat", "Blue", "زبان","D-1")
s[!grepl('^[[:alnum:]_-]+$', s)] <- ''
s

s您可以直接在您的字符类中添加
\uu
-
(无需转义)。如果连字符是类中的第一个或最后一个字符,即

[A-Za-z0-9_-]
所以你可以试试这个:

s[!grepl('^[A-Za-z0-9_-]+$', s)] <- 'ABC'

s[!grepl('^[A-Za-z0-9_-]+$,s)]您可以直接在角色类中添加
\ucode>和
-
(无需转义)。如果连字符是类中的第一个或最后一个字符,即

[A-Za-z0-9_-]
所以你可以试试这个:

s[!grepl('^[A-Za-z0-9_-]+$', s)] <- 'ABC'

s[!grepl('^[A-Za-z0-9_-]+$,s)]小调:在某些情况下,您不需要双重\escape-和uu-像这里这样:s[!grepl('^[:alnum:][u-]+$,s)]谢谢,我没有意识到这一点。刚刚更新的回答会添加“[:punct:]以保留所有ASCII标点。次要说明:在某些情况下,您不需要对-和uuu:s[!grepl('^[:alnum:][u-]+$”,s)进行双转义,谢谢,我没有意识到。刚刚更新的回答会添加“[:punct:]以保留所有ASCII标点。