Man*_*rma 7 regex string r stringr
我知道这个问题已经在很多地方被问过,但我没有看到确切的答案。
所以我试图借助正则表达式从 R 中的字符串(“尝试”)中准确提取第二个单词。我不想使用 unlist(strsplit)
sen= "I am trying to substring here something, but I am not able to"
str_extract(sen, "trying to\\W*\\s+((?:\\S+\\s*){2})")
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想将“此处”作为输出,但我得到“尝试在此处进行子串”
既然你也标记了stringr
,我将发布word
解决方案,
library(stringr)
word(sub('.*trying to ', '', sen), 2)
#[1] "here"
Run Code Online (Sandbox Code Playgroud)
您实际上可以使用以下命令捕获您需要的单词str_match
:
str_match(sen, "trying to\\W+\\S+\\W+(\\S+)")[,2]
Run Code Online (Sandbox Code Playgroud)
或者
str_match(sen, "trying to\\s+\\S+\\s+(\\S+)")[,2]
Run Code Online (Sandbox Code Playgroud)
这里,\S+
匹配 1 个或多个除空格之外的字符,\W+
匹配 1 个或多个除单词字符之外的字符,并\s+
匹配 1+ 个空格。
请注意,如果您的“单词”之间的空格(例如标点符号)以上,请使用\W+
. 否则,如果只有空格,请使用\s+
.
将[,2]
访问第一个捕获的值(与第一对未转义括号内的模式部分匹配的文本部分)。
归档时间: |
|
查看次数: |
8150 次 |
最近记录: |