mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* implementation * tests * maybe fix windows compilation? * undo change of match_flag_type * switch to boost regex * move flags to BRegExp object * fix tests due to cmake 4 update * update grammar * update prettifier * move flag parsing to BRegExp ctor * add AST nodes, update instr generation and execution * copy tests but use regular expression literals * fix grammar for handling division correctly * modify return values a bit, update tests - string.match: make groups hold structs of matched, offset - string.match: add offset - string.replace: use a groups array like string.match vs individual arguments * bundle of changes - standardize error messages - add more tests for coverage - move BRegExp creation to static method: previous implementation had ctor throwing, which was no good inside executor since it didn't have a try/catch * more tests; add OT_REGEXP to basic.em * move string regex stuff to bregexp and support regex/wregex via std::visit * maybe fix compilation errors? * add unicode escape sequence handling * really maybe fix compilation error? * fix compiler warnings * refactor a bit to remove duplicate code * address discord comments - just return wstring, no need for vector<wchar_t> method * Add string.split by string and regexp * Use Max_Split instead of Limit This makes it match basic::SplitWords * add support for empty string delim in SplitWords * remove duplicate code across string.split and mf_SplitWords * Squashed commit of the following: commitb3148e069fAuthor: turleypol <turley@polserver.com> Date: Sat Sep 27 17:02:22 2025 +0200 memorylocation of input string is not allowed to changed, switched back to uniqueptr commit5a4d1c8fcbAuthor: turleypol <turley@polserver.com> Date: Sat Sep 27 10:18:01 2025 +0200 no need to use ptr for input commit90fa0edc66Author: turleypol <turley@polserver.com> Date: Sat Sep 27 09:56:29 2025 +0200 fixed typo commitbed4ff3ac9Author: turleypol <turley@polserver.com> Date: Sat Sep 27 09:47:36 2025 +0200 make Callback for BContinuation move only * use uninit when group isn't matched * fix multiline flag handling; add test * add docs and doc example tests * some cleanup * address review comments - allow move assignment * add core-changes
24 lines
516 B
Text
24 lines
516 B
Text
print( "a:b:c:d:e:".split( "" ) );
|
|
|
|
print( "a:b:c:d:e:".split( ":" ) );
|
|
|
|
print( "a:b::c:d::e::f:g::h:i".split( "::" ) );
|
|
|
|
print( "---" );
|
|
|
|
print( "a:b:c:d:e:".split( "", 3 ) );
|
|
|
|
print( "a:b:c:d:e:".split( ":", 3 ) );
|
|
|
|
print( "a:b::c:d::e::f:g::h:i".split( "::", 3 ) );
|
|
|
|
print( "---" );
|
|
|
|
print( "ёЁйЙьЬъЪ".split( "" ) );
|
|
print( "ёЁйЙьЬъЪ".split( "", 3 ) );
|
|
|
|
|
|
print( "---" );
|
|
|
|
// Max splits 0 means return array of 1 element (ie the input string itself)
|
|
print( "a;bb;ccc.dddd,eeeee".split( ";", 0 ) );
|