0

我目前正在研究SilgeRobinson的 R 书中的文本分析,鉴于我的新手身份,我无法理解这个正则表达式"^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)

我的看法是,这将识别也用罗马数字书写的章节编号(我认为,`\d 对小数来说就足够了)。是这样吗?无论章节编号如何,识别章节编号的通用公式是什么?如果是这样,它将如何识别某些罗马数字重复的第三章、第二十一章等?

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

提前致谢。

4

1 回答 1

1

字符类匹配方括号之间的单个字符。如果“章节(空格)”后面的字符是罗马数字,那么你已经有了匹配项,不必特别在意后面的内容。您可以添加+说“一个或多个”,但这不会改变匹配的行,并且省略它可以节省几个周期。

于 2018-02-11T11:43:27.447 回答