gpt4 book ai didi

regex - 在 R 中,如何匹配 Markdown 列表

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

我正在尝试匹配以下有序和无序列表并提取项目符号/列表点。

library(stringr)
examples <- c(
"* Bullet 1\n* Bullet 2\n* Bullet 3",
"1. Bullet 1\n2. Bullet 2\n3. Bullet 3",
"* This is a test 1\n* This is a test with some *formatting*\n* This is a test with different _formatting_"
)

我想做的是:

  1. 以编程方式识别它是一个列表
  2. 将每个解析为列表项的文本

结果是

some_str_fun(example,pattern) # or multiples
"Bullet 1" "Bullet 2" "Bullet 3"
"Bullet 1" "Bullet 2" "Bullet 3"
"This is a test 1" "This is a test with some *formatting*"
"This is a test with different _formatting_"

我一直在研究以下模式和 str_extract/match,但似乎找不到完全可用的东西

[*]+\\s(.*?)[\n]* # for * Bullet X\n
[1-9]+[.]\\s(.*?)[\n]* # for 1. Bullet X\n

我已经对这些模式进行了一系列不同的迭代,但似乎无法完全得到我正在寻找的东西。

最佳答案

您可以使用 gsubfn 中的 strapply包以匹配整个模式。

library(gsubfn)

examples <- c(
"* Bullet 1\n* Bullet 2\n* Bullet 3",
"1. Bullet 1\n2. Bullet 2\n3. Bullet 3",
"* This is a test 1\n* This is a test with some *formatting*\n* This is a test with different _formatting_"
)

strapply(examples, '(?:\\*|\\d+\\.) *([^\n]+)', c, simplify = c)

# [1] "Bullet 1"
# [2] "Bullet 2"
# [3] "Bullet 3"
# [4] "Bullet 1"
# [5] "Bullet 2"
# [6] "Bullet 3"
# [7] "This is a test 1"
# [8] "This is a test with some *formatting*"
# [9] "This is a test with different _formatting_"

关于regex - 在 R 中,如何匹配 Markdown 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373434/

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