summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.golem2
-rw-r--r--regem.golem18
2 files changed, 14 insertions, 6 deletions
diff --git a/main.golem b/main.golem
index 8758f85..6c5e5e2 100644
--- a/main.golem
+++ b/main.golem
@@ -1,5 +1,5 @@
main() {
local size;
- dbg regem("bonsoir", "^b.n..ir$", &size);
+ dbg regem("bonoir", "bon?A?soir", &size);
dbg size;
}
diff --git a/regem.golem b/regem.golem
index 1d66d0b..cec4643 100644
--- a/regem.golem
+++ b/regem.golem
@@ -12,12 +12,20 @@ _regem_match(s, ex, out_size) {
return 0;
else if ([ex] == '.')
;
- else if ([s] != [ex])
+ else if ([ex] == '?' & [ex + 1] != 0) {
+ ex++;
+ if ([s] == [ex]) {
+ s++;
+ size++;
+ }
+ ex++;
+ } else if ([s] != [ex])
return 0;
-
- s++;
- ex++;
- size++;
+ else {
+ s++;
+ ex++;
+ size++;
+ }
}
}