r - 带有长表达式的 R 正则表达式
问题描述
我有一个来自 pdf 提取的长字符。下面是一个 MWE:
MWE <- "4 BLABLA\r\n Table 1. Real GDP\r\n Percentage changes\r\n 2016 2017 \r\nArgentina -2.5 2.7\r\nAustralia 2.6 2.5\r\n BLABLA \r\n Table 2. Nominal GDP\r\n Percentage changes\r\n 2011 2012\r\nArgentina 31.1 21.1\r\nAustralia 7.7 3.3\r\n"
我想把它分成一个列表,每个元素都是一个表。 我可以这样做:
MWE_1 <- as.list(strsplit(MWE, "(?<=[Table\\s+\\d+\\.\\s+(([A-z]|[ \t]))+\\r\\n])"))
> MWE_1
[[1]]
[1] "4 BLABLA\r\n "
[2] " Percentage changes\r\n 2016 2017 \r\nArgentina -2.5 2.7\r\nAustralia 2.6 2.5\r\n BLABLA 5\r\n "
[3] " Percentage changes\r\n 2011 2012\r\nArgentina 31.1 21.1\r\nAustralia 7.7 3.3\r\n"
但我想保留分隔符,这是一个非常长的正则表达式。我看了一点,似乎一个不错的方法是尝试lookbehinds。但是,我不知道如何连接我的长正则表达式。例如,
MWE_2 <- as.list(strsplit(MWE, "(?<=[Table\\s+\\d+\\.\\s+(([A-z]|[ \t]))+\\r\\n])"))
产生错误:
invalid regular expression '(?<=[Table\s+\d+\.\s+(([A-z]|[ ]))+\r\n])', reason 'Invalid regexp'
如何以紧凑的方式做到这一点?
另外,有没有不保留第一个元素的直接方法?
解决方案
推荐阅读
- oracle - 传递字符串参数 JPA 原生查询
- ios - 在 SwiftUI 中使用 NavigationLink 导航时如何隐藏 TabBar?
- c# - 继承基类错误不包含接受 0 个参数的构造函数
- angular - 如何使用超过 5 个动作的 ofType?
- javascript - 在不刷新页面的情况下更新 DataTables 表中的行
- jquery - 如何选择带有随机 id 的标签,但上面有一致的词?
- javascript - 单击单选标签时我如何更改课程
- c# - 如何使用 c#.net(MVC) 实现字符串排序?
- java - Reactor:Mono:结合两种方法 doOnError 和 onErrroMap
- python - 什么是“用户警告:未选择任何功能”