在以"PID"开头的字符串中查找单词并返回单词(在R中)

use*_*239 2 regex r

我需要搜索大量的字符串来找到以PID开头的"单词".PID是一个ID标签,它们都是编号的(PID1,PID23等)

要搜索的字符串示例:PID442 WALKS TO TOWN

我需要返回特定的ID,因此输出为"PID442".我试图在R中这样做

Fra*_*ank 5

另一种方法,(我希望)有点简单:

> str <- 'PID442 WALKS TO TOWN'
> regmatches(str, regexpr('\\<PID\\w*\\>', str))
[1] "PID442"
Run Code Online (Sandbox Code Playgroud)

regexpr获得str第一场比赛的位置.(如果要在字符串中查找多个匹配项,就像在其他一些答案中一样,只需替换regexprgregexpr.)regmatches返回与匹配项对应的字符串.

在正则表达式中: \\<\\>标记单词的开头和结尾. \\w匹配"单词"字符,因此\\w*匹配零个或多个单词字符.