Libraryless. Click here for Pure Java version (5017L/28K).
1 | persistable srecord RegExp(S pattern, bool caseInsensitive) {
|
2 | transient Pattern compiled; |
3 | S error; |
4 | |
5 | *(S *pattern) {}
|
6 | |
7 | // TODO: don't compile again when error detected? |
8 | java.util.regex.Pattern compile aka get() {
|
9 | try {
|
10 | compiled if null = compileRegexpPossiblyIC(pattern, caseInsensitive); |
11 | error = null; |
12 | ret compiled; |
13 | } catch e {
|
14 | error = exceptionToStringShort(e); |
15 | null; |
16 | } |
17 | } |
18 | |
19 | bool valid() {
|
20 | ret compile() != null; |
21 | } |
22 | |
23 | bool containsSpecialChars() {
|
24 | ret containsRegExpSpecialChars(pattern); |
25 | } |
26 | |
27 | bool containedIn(S s) {
|
28 | ret regexpContains(getForce(), s); |
29 | } |
30 | |
31 | java.util.regex.Pattern getForce() {
|
32 | var pattern = get(); |
33 | if (error != null) fail(error, pattern); |
34 | ret pattern; |
35 | } |
36 | } |
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1032802 |
| Snippet name: | RegExp - encapsulate a regular expression (unparsed and parsed, optionally CI) |
| Eternal ID of this version: | #1032802/14 |
| Text MD5: | 823482a7bccdd8145b98140fd69cf41a |
| Transpilation MD5: | 0ef2c1b3e4d161f3ec8c62ed5bb16e25 |
| Author: | stefan |
| Category: | javax / regexp |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2021-11-14 20:57:10 |
| Source code size: | 805 bytes / 36 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 493 / 716 |
| Version history: | 13 change(s) |
| Referenced in: | [show references] |