From ba23ab7c379e1385a81fce2f5d886d12e7763c64 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Mon, 31 Dec 2018 22:04:40 -0800 Subject: [PATCH] some regular expression usage examples Ported from https://docs.racket-lang.org/reference/regexp.html Thanks Kinnard Hockenhull for the questions and feedback about regular expressions in Arc. --- lib/re.arc.t | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests.arc | 1 + 2 files changed, 117 insertions(+) create mode 100644 lib/re.arc.t diff --git a/lib/re.arc.t b/lib/re.arc.t new file mode 100644 index 000000000..1f6cadc6d --- /dev/null +++ b/lib/re.arc.t @@ -0,0 +1,116 @@ +(require 'lib/re.arc) + +(suite re-match + (suite simple-regex + (test ex1 + (assert-same '("a") + (re-match (re "a|b") "cat"))) + (test ex2 + (assert-same '("a") + (re-match (re "[at]") "cat"))) + (test ex3 + (assert-same '("caaat") + (re-match (re "ca*[at]") "caaat"))) + (test ex4 + (assert-same '("caaat") + (re-match (re "ca+[at]") "caaat"))) + (test ex5 + (assert-same '("ct") + (re-match (re "ca?t?") "ct"))) + (test ex6 + (assert-same '("ca") + (re-match (re "ca*?[at]") "caaat"))) + (test ex7 + (assert-same '("caa" "c" "aa") + (re-match (re "(c*)(a*)") "caat"))) + (test ex8 + (assert-same '("t") + (re-match (re "[^ca]") "caat"))) + (test ex9 + (assert-same '("cat" "a") + (re-match (re ".(.).") "cat"))) + (test ex10 + (assert-same '("c") + (re-match (re "^a|^c") "cat"))) + (test ex11 + (assert-same '("t") + (re-match (re "a$|t$") "cat"))) + (test ex12 + (assert-same '("|") + (re-match (re "\\|") "c|t"))) + (test ex13 + (assert-same '("ca") + (re-match (re "[a-f]*") "cat"))) + (test ex14 + (assert-same '("]") + (re-match (re "[]]") "c]t"))) + (test ex15 + (assert-same '("-") + (re-match (re "[-]") "c-t"))) + (test ex16 + (assert-same '("[a]") + (re-match (re "[]a[]+") "c[a]t"))) + (test ex17 + (assert-same '("a^") + (re-match (re "[a^]+") "ca^t"))) + (test ex18 + (assert-same '("na") + (re-match (re ".a(?=p)") "cat nap"))) + (test ex19 + (assert-same '("na") + (re-match (re ".a(?!t)") "cat nap"))) + (test ex20 + (assert-same '("ap") + (re-match (re "(?<=n)a.") "cat nap"))) + (test ex21 + (assert-same '("ap") + (re-match (re "(?