2

我知道如何在 Python 中做到这一点,但无法让它在 R 中工作

> string  <- "this is a sentence"
> pattern <- "\b([\w]+)[\s]+([\w]+)[\W]*?$"
Error: '\w' is an unrecognized escape in character string starting "\b([\w"
> match   <- regexec(pattern, string)
> words   <- regmatches(string, match)
> words
[[1]]
character(0)
4

3 回答 3

5
sub('.*?(\\w+)\\W+\\w+\\W*?$', '\\1', string)
#[1] "a"

它的内容是 -不贪心并寻找任何东西,直到你到达序列 - 一些单词字符 + 一些非单词字符 + 一些单词字符 + 可选的非单词字符 + 字符串结尾,然后提取单词字符的第一个集合在那个序列中

于 2013-08-21T17:17:39.337 回答
5

非正则表达式解决方案:

string  <- "this is a sentence"
split <- strsplit(string, " ")[[1]]
split[length(split)-1]
于 2013-08-21T17:43:20.360 回答
0

Python non regex version

    spl = t.split(" ")
    if len(spl) > 0:
        s = spl[len(spl)-2]
于 2022-01-29T23:21:58.823 回答