Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
10.1
10.2
10.3
10.4
10.5
11.0
11.1
11.2
11.3
11.4
Statistic
FMM
Blog
Compiles a pattern.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
RegEx | 4.4 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example |
---|---|---|
Pattern | The pattern to use. | "H(.*)" |
CompilerOptions | A number for the options to use. e.g. 1 for case insensitive or 512 for ungreedy. Add 2 for multiline. Can be given as text or number. |
"multiline¶ungreedy" |
Returns reference number or error.
Compile option | Number | Description |
Caseless | 1 | Do caseless matching |
Multiline | 2 | ^ and $ match newlines within data |
Dot All | 4 | . matches anything including NL |
Extended | 8 | Ignore white space and # comments |
Anchored | 16 | Force pattern anchoring |
Dollar End Only | 32 | $ not to match newline at end |
Ungreedy | 512 | Invert greediness of quantifiers |
No Auto Capture | 4096 | Disable numbered capturing parentheses (named ones available) |
Auto Callout | 16384 | Compile automatic callouts |
FirstLine | 262144 | Force matching to be before newline |
Dup Names | 524288 | Allow duplicate names for subpatterns |
Newline CR | 1048576 | Set CR as the newline sequence |
Newline LF | 2097152 | Set LF as the newline sequence |
Newline CRLF | 3145728 | Set CRLF as the newline sequence |
Newline Any | 4194304 | Recognize any Unicode newline sequence |
Newline Any CRLF | 5242880 | Recognize CR, LF, and CRLF as newline sequences |
BSR Any CRLF | 8388608 | \R matches only CR, LF, or CRLF |
BSR Unicode | 16777216 | \R matches all Unicode line endings |
JavaScript Compatible | 33554432 | JavaScript compatibility |
No start optimize | 67108864 | Disable match-time start optimizations |
Compile with double escapement:
Set Variable [ $regex ; Value: MBS("RegEx.Compile"; "\\\""; 512+1) ]
Find matches in multiline text:
Let ([
pattern = "^GR.";
text = "GR1¶GR2 ¶GR3 ";
CompileOptions = 2 /* multiline */ + 1 /* caseless */ + 4194304 /* newline any */;
ExecuteOptions = 4194304 /* newline any */;
regex = MBS("RegEx.Compile"; pattern; CompileOptions );
result = MBS( "RegEx.FindMatches"; regex; text; ExecuteOptions ; 0 );
r = MBS("RegEx.Free"; regex)
]; result )
Loop and find all matches for pattern:
Set Variable [ $pattern ; Value: "(USt\-?ID:?|USt\-?IdNR\.?:?|Umsatzsteuer\-?ID:?|VAT\-?ID:?)[\s]?(DE)[\s]?([0-9]{9})" ]
Set Variable [ $ExecuteOptions ; Value: 0 ]
Set Variable [ $CompileOptions ; Value: "caseless" ]
Set Variable [ $regex ; Value: MBS("RegEx.Compile"; $Pattern; $CompileOptions) ]
Set Variable [ $offset ; Value: 0 ]
Loop
Set Variable [ $r ; Value: MBS("RegEx.Execute"; $regex; RegEx::Text; $ExecuteOptions; $offset) ]
Exit Loop If [ $r < 4 ]
Set Variable [ $s1 ; Value: MBS("RegEx.Substring"; $RegEx; 1) ]
Set Variable [ $s2 ; Value: MBS("RegEx.Substring"; $RegEx; 2) ]
Set Variable [ $s3 ; Value: MBS("RegEx.Substring"; $RegEx; 3) ]
Show Custom Dialog [ $s1 & ¶ & $s2 & ¶ & $s3 ]
Exit Loop If [ MBS("IsError") ]
Set Variable [ $offset ; $offset + Value: GetAsNumber(GetValue(MBS("RegEx.Results"; $regex); 2)) ]
End Loop
Set Variable [ $r ; Value: MBS("RegEx.Free"; $RegEx) ]
Created 26th October 2014, last changed 29th June 2018
RegEx.CaptureCount - RegEx.DataDetector
Feedback: Report problem or ask question.