R book代码中文本分析中的Regex//divxlc

R book代码中文本分析中的Regex//divxlc,r,regex,tidytext,R,Regex,Tidytext,我目前正在和学习R book中的文本分析,鉴于我的新手身份,我无法准确理解这个regex“^chapter[\\divxlc]”在整理文本时是如何计算章节号的。我已经检查了regex101引擎(我可能也会忽略如何使它满足我的需要)。有人能帮我弄清楚吗?这就是我所指的代码: tidy_books <- austen_books() %>% group_by(book) %>% mutate(linenumber = row_number(), chapter =

我目前正在和学习R book中的文本分析,鉴于我的新手身份,我无法准确理解这个regex
“^chapter[\\divxlc]”
在整理文本时是如何计算章节号的。我已经检查了regex101引擎(我可能也会忽略如何使它满足我的需要)。有人能帮我弄清楚吗?这就是我所指的代码:

tidy_books <- austen_books() %>%
  group_by(book) %>%
  mutate(linenumber = row_number(),
     chapter = cumsum(str_detect(text, regex("^chapter [\\divxlc]", 
                                             ignore_case = TRUE)))) %>%
 ungroup() %>%
 unnest_tokens(word, text)
整理书籍%
按(书本)分组%>%
变异(行号=行号(),
chapter=cumsum(str_detect(text,regex)(“^chapter[\\divxlc]”,
忽略_case=TRUE))%>%
解组()%>%
unnest_标记(单词、文本)
我的观点是,这将识别同样用罗马数字书写的章节号(我认为,`\d应该足够小数)。是这样吗?无论章节编号如何,章节编号是否为通用公式?如果是的话,它将如何识别第三章、第二十一章等一些罗马数字重复的地方

如有任何指示或参考以寻求澄清,我将不胜感激


提前谢谢

字符类匹配方括号中的单个字符。如果“chapter(space)”后面的字符是罗马数字,那么您已经有了一个匹配项,并且不必特别关心后面跟什么。您可以添加
+
来表示“一行或多行”,但这不会改变匹配的行,省略它可以节省几个周期。

另请参见您需要的参考-。而且,您可以在那里随意测试您的模式
(?i)
代表
ignore\u case=TRUE