【发布时间】:2022-01-17 04:40:30
【问题描述】:
我正在尝试在 R 中使用正则表达式来提取括号内的整个字符串,其中括号包含关键字:
library(stringr)
test <- "asdf asiodjfojewl kjwnkjwnefkjnkf [asdf] fasdfads fewrw [keyword<1] keyword [keyword>1]"
应该返回
keyword<1 # fine if it returns [keyword<1] with the brackets too instead
keyword>1
我的尝试单独返回所有字母并排除括号中的数字。
# my attempt
str_extract_all(test, regex("[\\<keyword\\>.*?]"))
[[1]]
[1] "d" "o" "d" "o" "e" "w" "k" "w" "k" "w" "e" "k" "k" "d" "d" "d" "e" "w" "r" "w" "k" "e" "y" "w" "o" "r" "d" "<" "k" "e" "y" "w" "o" "r"
[35] "d" "k" "e" "y" "w" "o" "r" "d" ">"
【问题讨论】:
-
你可以试试:
str_extract_all(test, "(?<=\\[)keyword.*?(?=\\])") -
行得通!你能把它作为答案提交给我吗?
-
drj3122,不要急于选择答案。似乎对您有用的答案稍后可能会被证明是不正确的,或者可能会出现更好的答案。这里的许多提问者至少要等几个小时才能做出选择。有些等待的时间要长一些。
-
@AndS,与
'[keywording]'中的'keywording'匹配,但与'[no keyword]'中的'keyword'不匹配。请注意,虽然示例中的关键字紧跟在左括号之后,但第一句表明情况并非总是如此。 -
@CarySwoveland 我只写了一个简短的评论来回答提出的问题。示例中没有“关键字”和“无关键字”,因此我没有尝试将它们考虑在内。