gpt4 book ai didi

regex - 从字符串中提取数字和名称 [r]

转载 作者:行者123 更新时间:2023-12-01 10:35:43 25 4
gpt4 key购买 nike

POSIX 表达式让我很头疼。

假设我们有一个字符串:

a = "[question(37), question_pipe(\"Person10\")]"

最终我希望能够:

b = c("37", "Person10")

我看过 stringr 包,但无法弄清楚如何使用正则表达式和 str_split 提取信息。

如有任何帮助,我们将不胜感激。

卡梅伦

最佳答案

因此,如果我理解正确的话,您想提取括号内的元素。

您可以先使用 str_extract_all 提取这些元素,包括括号:

b1 <- str_extract_all(string = a, pattern = "\\(.*?\\)")
b1
# [[1]]
# [1] "(37)" "(\"Person10\")"

因为 str_extract_all 返回一个列表,我们把它变成一个向量:

b2 <- unlist(b1)
b2
# [1] "(37)" "(\"Person10\")"

最后,您可以使用 str_sub 删除括号(每个字符串的第一个和最后一个字符):

b3 <- str_sub(string = b2, start = 2L, end = -2L) 
b3
# [1] "37" "\"Person10\""

编辑:关于正则表达式模式的一些评论:\\(\\) 是您的左括号和右括号。 .*? 表示任何字符串,但不要贪心,否则你会得到一个从第一个 ( 到最后一个 ) 的长匹配。

关于regex - 从字符串中提取数字和名称 [r],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796752/

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