gpt4 book ai didi

r - 仅匹配括号内字符的模式

转载 作者:行者123 更新时间:2023-12-05 02:28:49 72 4
gpt4 key购买 nike

我在这里查看了很多关于 SO 的帖子,其中包含有关从括号中获取文本的 REGEX 模式的建议。但是,根据我的调查,我找不到可行的解决方案。

例如,我看过以下内容: R - Regular Expression to Extract Text Between Parentheses That Contain Keyword , Extract text in parentheses in R , regex to pickout some text between parenthesis [duplicate]

按以下顺序,这里是最佳答案解决方案(有一些修改):

pattern1= '\\([^()]*[^()]*\\)'
pattern2= '(?<=\\()[^()]*(?=\\))'
pattern3= '.*\\((.*)\\).*'
all_patterns = c(pattern1, pattern2, pattern3)

我使用了以下内容:

sapply(all_patterns , function(x)stringr::str_extract('I(data^2)', x))

\\([^()]*[^()]*\\) (?<=\\()[^()]*(?=\\)) .*\\((.*)\\).*
"(data^2)" "data^2" "I(data^2)"

这些好像都不是只抓取括号内的字符,那怎么才能只抓取括号内的字符呢?

预期输出:

data

最佳答案

str_extract , 它会提取模式中匹配的所有字符。相反,使用正则表达式环视来匹配一个或多个不是 ^ 的字符或右括号 ( ) ) ( [^\\^\\)]+ ) 在左括号 ( (?<=\\() 之后 - 这些被转义 ( \\ ) 因为它们是元字符

library(stringr)
str_extract('I(data^2)', '(?<=\\()[^\\^\\)]+')
# [1] "data"

关于r - 仅匹配括号内字符的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72520205/

72 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com