我尝试使用以下正则表达式将字符串标记为标记。
基本上,这个字符串是R源代码。因此,我想将:punct:
分成单独的令牌。
但是,我希望将'
和_
保留在任何单词中,因为它们属于单个标记。
我的问题是,如何添加更多案例,例如==
,<=
,<-
,&&
。我试过了['_==<=<-&&]
,但我认为这不是正确的方法。
strsplit(str, "(\\s+)|(?!['_])(?=[[:punct:]])", perl = TRUE)
答案 0 :(得分:2)
使用R解析器本身比自己做更好(这是一项艰巨的任务,因为你必须基本上重新实现它。)
例如:
makeSmall = () => {
var text = this.refs.hello.innerText
console.log(text)
}
编辑
(根据OP的评论)
x <- parse(text = "x <- c(1, 4)\n x ^ 3 -10 ; outer(1:7, 5:9)\n a <-3 ; a < -3")
str(lapply(as.list(x), as.list))
List of 5
$ :List of 3
..$ : symbol <-
..$ : symbol x
..$ : language c(1, 4)
$ :List of 3
..$ : symbol -
..$ : language x^3
..$ : num 10
$ :List of 3
..$ : symbol outer
..$ : language 1:7
..$ : language 5:9
$ :List of 3
..$ : symbol <-
..$ : symbol a
..$ : num 3
$ :List of 3
..$ : symbol <
..$ : symbol a
..$ : language -3