R中的strsplit函数是什么,匹配并删除给定的正则表达式以将字符串的其余部分拆分为向量.
>strsplit("abc123def", "[0-9]+")
[[1]]
[1] "abc" "" "" "def"
Run Code Online (Sandbox Code Playgroud)
但是我应该如何使用正则表达式以相同的方式拆分字符串,还要保留匹配?我需要以下内容.
>FUNCTION("abc123def", "[0-9]+")
[[1]]
[1] "abc" "123" "def"
Run Code Online (Sandbox Code Playgroud)
使用strapply("abc123def","[0-9] + | [az] +")在这里工作,但如果正则表达式无法捕获除匹配之外的其余字符串怎么办?
在R中是否可以在向量中搜索正则表达式,就好像所有元素都是折叠的单个元素一样?如果我们将所有元素折叠成一个来做这个,那么在搜索之后就不可能将它们放回到它们的元素形式.
这是一个向量.
vector<-c("I", "met", "a", "cow")
Run Code Online (Sandbox Code Playgroud)
现在,搜索词是"meta"(元素2和3折叠).
假设我的任务是合并搜索字符串所在的两个元素.
所以我期待的是:
vector = "I", "meta", "cow"
Run Code Online (Sandbox Code Playgroud)
是否有可能做到这一点?请帮忙.
循环遍历向量时,是否可以使用元素的索引和元素?
a.vector <-c("a","b","c","a","d")
假设我需要a.vector的'first'"a"的索引.一个人无法使用
哪个(a.vector =="a")
因为有两个'a',它将返回两个位置1和4.我需要循环立即覆盖的元素的特定索引.
我需要这样的东西:
b.vector <-c("the","cat","chased","a","mouse")
for (i in a.vector) {
element<-b.vector[INDEX.OF(a.vector)])
-------some process using both 'element' and "a"-------}
Run Code Online (Sandbox Code Playgroud)
这看起来类似于python中的'enumerate'函数.解决方案会有很大帮助.谢谢.
string<-c(" this is a string ")
Run Code Online (Sandbox Code Playgroud)
是否可以在弦的两侧(或根据需要只是一侧)修剪掉白色空间,并用R中的所需字符替换它?字符串两侧的白色空格数不同,必须在更换时保留.
"~~~~~~~this is a string~~"
Run Code Online (Sandbox Code Playgroud) 我需要保留括号中的单词并删除以下字符串中的其他单词.
(A(B(C)d)(E)F)
所以我的期望是(((c))(e)).要删除a,b,d,f,我尝试了"未遵循"正则表达式.
str <- "(a(b(c)d)(e)f)"
gsub("([a-z]+)(?!\\))", "", str) #(sub. anything that isn't followed by a ")" )
Run Code Online (Sandbox Code Playgroud)
该消息显示我的正则表达式无效.正如我所看到的,正则表达式"(?!\))"第二部分中的括号不匹配.至于我的编辑器,第一个"("与紧随其后的")匹配",这并不意味着是一个闭包(右边的那个).我可以从我的正则表达式中弄清楚这个错误.你能告诉我实际上有什么问题吗?有没有其他方法可以做到这一点?