Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(pipeR)
- library(stringr)
- set.seed(20)
- str_candidates <- c(
- str_c("{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), "}"),
- str_c("{{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), "}}"),
- str_c("{{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), ":",
- str_c(rep(" ", sample(4, 1L)), collapse = ""),
- replicate(30L, str_c(sample(c(letters, str_split("/*-+=~!@#$%^&*`?", "")[[1]]), sample(5:20, 5), TRUE),
- collapse = "")), "}}"),
- str_c("<", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), ">"),
- letters, LETTERS
- )
- N <- 10000L
- n <- 50L
- a <- replicate(N, sample(str_candidates, n, TRUE) %>>% str_c(collapse=" "), simplify = TRUE)
- a2 <- a %>>% str_replace_all("\\{\\{([^: ]+)([^{}]+)?\\}\\}", "\\{\\{\\1\\}\\}") %>>%
- str_replace_all("([^{}]+)\\{[^{}]+\\}", "\\1") %>>%
- str_replace_all("^\\{[^{}]+\\}\\s?([^{}]+)?", "\\1") %>>%
- str_replace_all("([^<]+)?<[^<>]*>\\s?", "\\1")
- all.equal(str_split(a, " ") %>>% laply(function(x) sum(str_detect(x, "^[a-zA-Z]$"))),
- str_split(a2, " ") %>>% laply(function(x) sum(str_detect(x, "^[a-zA-Z]$")))) # TRUE
- str_detect(a2, "<[^<>]*>") %>>% any # FALSE
- str_detect(a2, "[^\\{]\\{[^{}]*\\}[^\\}]") %>>% any # FALSE
- str_detect(a2, "^\\{[^{}]*\\}[^\\}]") %>>% any # FALSE
- str_detect(a2, "[^\\{]\\{[^{}]*\\}$") %>>% any # FALSE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement