celestialgod

regexp question

Nov 9th, 2016
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.34 KB | None | 0 0
  1. library(pipeR)
  2. library(stringr)
  3.  
  4. set.seed(20)
  5. str_candidates <- c(
  6.   str_c("{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), "}"),
  7.   str_c("{{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), "}}"),
  8.   str_c("{{", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), ":",
  9.         str_c(rep(" ", sample(4, 1L)), collapse = ""),
  10.         replicate(30L, str_c(sample(c(letters, str_split("/*-+=~!@#$%^&*`?", "")[[1]]), sample(5:20, 5), TRUE),
  11.                             collapse = "")), "}}"),
  12.   str_c("<", replicate(30L, str_c(sample(letters, sample(5:20, 5L), TRUE), collapse = "")), ">"),
  13.   letters, LETTERS
  14. )
  15.  
  16. N <- 10000L
  17. n <- 50L
  18.  
  19. a <- replicate(N, sample(str_candidates, n, TRUE) %>>% str_c(collapse=" "), simplify = TRUE)
  20. a2 <- ??
  21.  
  22. ## test 1
  23. all.equal(str_split(a, " ") %>>% laply(function(x) sum(str_detect(x, "^[a-zA-Z]$"))),
  24.           str_split(a2, " ") %>>% laply(function(x) sum(str_detect(x, "^[a-zA-Z]$"))))
  25. # expected result: TRUE
  26.  
  27. ## test 2
  28. str_detect(a2, "<[^<>]*>") %>>% any
  29. # expected result: FALSE
  30.  
  31. ## test 3
  32. str_detect(a2, "[^\\{]\\{[^{}]*\\}[^\\}]") %>>% any
  33. # expected result: FALSE
  34. str_detect(a2, "^\\{[^{}]*\\}[^\\}]") %>>% any
  35. # expected result: FALSE
  36. str_detect(a2, "[^\\{]\\{[^{}]*\\}$") %>>% any
  37. # expected result: FALSE
Advertisement
Add Comment
Please, Sign In to add comment