| mmi <- max_match_index(m) | mmi <- max_match_index(m) | ||||
| if (any(!is.na(mmi))) { | if (any(!is.na(mmi))) { | ||||
| subtext <- purrr::map_chr(m, "text") %>% purrr::map2_chr(mmi, substring) | subtext <- purrr::map_chr(m, "text") %>% purrr::map2_chr(mmi, substring) | ||||
| subtext[is.na(subtext)] <- "" | |||||
| m2 <- regex(subtext, pattern, ignore.case, perl, fixed, useBytes) | |||||
| sub_idx <- which(!is.na(subtext)) | |||||
| m2 <- regex(subtext[sub_idx], pattern, ignore.case, perl, fixed, useBytes) | |||||
| for (i in seq_along(m2)) { | for (i in seq_along(m2)) { | ||||
| if (is.null(m2[[i]]$idx[[1]])) next | if (is.null(m2[[i]]$idx[[1]])) next | ||||
| m2[[i]]$idx[, c(1, 2)] <- m2[[i]]$idx[, c(1, 2)] + mmi[i] - 1L | |||||
| m_idx <- sub_idx[i] | |||||
| m2[[i]]$idx[, c(1, 2)] <- m2[[i]]$idx[, c(1, 2)] + mmi[m_idx] - 1L | |||||
| m2[[i]]$idx$pass <- m2[[i]]$idx$pass + 1L | m2[[i]]$idx$pass <- m2[[i]]$idx$pass + 1L | ||||
| m[[i]]$idx <- rbind(m[[i]]$idx, m2[[i]]$idx) | |||||
| m[[m_idx]]$idx <- rbind(m[[m_idx]]$idx, m2[[i]]$idx) | |||||
| } | } | ||||
| } | } | ||||
| m | m |