Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 查找具有通用字符';[a,z]-\n';并替换子字符串的非常规部分'-\n';_R_Regex_Stringi - Fatal编程技术网

R 查找具有通用字符';[a,z]-\n';并替换子字符串的非常规部分'-\n';

R 查找具有通用字符';[a,z]-\n';并替换子字符串的非常规部分'-\n';,r,regex,stringi,R,Regex,Stringi,我有文本我正在清理在R。我想使用stringi,但很高兴使用其他软件包 有些单词被分成两行。所以我得到了一个子字符串“半字-\n第二个半字” 我还有一些字符串,它们只是“----\nword”和“-\n”(还有一些我不想替换的字符串) 我要做的是标识所有子字符串“[a-z]-\n”,然后保留通用字母[a,z],但删除-\n字符 我不想删除所有-\n,也不想删除字母[a-z] 谢谢!您只能在单词字符之间使用单词边界来匹配-: gsub("\\b-\n\\b", "", x) gsub("(*UCP

我有文本我正在清理在R。我想使用stringi,但很高兴使用其他软件包

有些单词被分成两行。所以我得到了一个子字符串“半字-\n第二个半字”

我还有一些字符串,它们只是“----\nword”和“-\n”(还有一些我不想替换的字符串)

我要做的是标识所有子字符串“[a-z]-\n”,然后保留通用字母[a,z],但删除-\n字符

我不想删除所有-\n,也不想删除字母[a-z]


谢谢!

您只能在单词字符之间使用单词边界来匹配
-

gsub("\\b-\n\\b", "", x)
gsub("(*UCP)\\b-\n\\b", "", x, perl=TRUE)
stringr::str_replace_all(x, "\\b-\n\\b", "", x)
后两个支持任何Unicode单词字符之间的单词边界

如果只想删除字母之间的
-
,可以使用

gsub("([a-zA-Z])-\n([a-zA-Z])", "\\1\\2", x)
gsub("(\\p{L})-\n(\\p{L})", "\\1\\2", x, perl=TRUE)
stringr::str_replace_all(x, "(\\p{L})-\n(\\p{L})", "\\1\\2")
如果只需要支持小写字母,请删除第一个
gsub
中的
A-Z
,并将后两个
\p{L}
替换为
\p{Ll}


请参阅。

您可以使用单词边界仅在单词字符之间匹配
-

gsub("\\b-\n\\b", "", x)
gsub("(*UCP)\\b-\n\\b", "", x, perl=TRUE)
stringr::str_replace_all(x, "\\b-\n\\b", "", x)
后两个支持任何Unicode单词字符之间的单词边界

如果只想删除字母之间的
-
,可以使用

gsub("([a-zA-Z])-\n([a-zA-Z])", "\\1\\2", x)
gsub("(\\p{L})-\n(\\p{L})", "\\1\\2", x, perl=TRUE)
stringr::str_replace_all(x, "(\\p{L})-\n(\\p{L})", "\\1\\2")
如果只需要支持小写字母,请删除第一个
gsub
中的
A-Z
,并将后两个
\p{L}
替换为
\p{Ll}


请参阅。

您尝试过单词边界了吗?如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,这将更容易帮助您。让我们可以轻松地复制/粘贴测试,而不是从您的文本中提取测试。也许您只需要
gsub(([a-z])-\n,“\\1”,x)
?您尝试过单词边界了吗?如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,这将更容易帮助您。让我们可以轻松地复制/粘贴测试,而不是从您的文本中提取测试。也许您只需要
gsub(([a-z])-\n”,“\\1”,x)