📄 trex.jc
字号:
/*
* trex.jc
*
* Test the Trex (tiny regular expression) object.
*/
import File;
import Trex;
import stdlib;
const long kFileIndex = 1;
const long kExprIndex = 2;
function string main(const array& args)
{
string result = "";
string text = "";
stdlib::Printf("* Trying to load text file '%s'\n", args[kFileIndex]);
File file = new File(args[kFileIndex], 0);
file.Open();
file.ReadText(text);
file.Close();
stdlib::Printf("* Read %d characters\n", text.length);
stdlib::Printf("* Trying to create regexp object '%s'\n", args[kExprIndex]);
Trex rex = new Trex(args[kExprIndex]);
string s = rex;
stdlib::Printf("rex to string convertor returns %s\n", s );
stdlib::Printf("rex.valid returns %d\n", rex.valid );
stdlib::Printf("rex.Match(text) returns %d\n", rex.Match(text) );
stdlib::Printf("rex.Search(text) returns %d\n", rex.Search(text) );
stdlib::Printf("rex.matchStart returns %d\n", rex.matchStart );
stdlib::Printf("rex.matchEnd returns %d\n", rex.matchEnd );
stdlib::Printf("rex.matchLength returns %d\n", rex.matchLength );
stdlib::Printf("rex.FormatMatch(\"$0=$1+$2\") returns %s\n", rex.FormatMatch("$0=$1+$2") );
stdlib::Print("* Testing Search(): Create an array of all matches in the file:\n");
array& results = rex.Search(text, "$0");
for( long i = 0; i < results.length; i++ )
stdlib::Printf("%s\t", results[i]);
stdlib::Print("\n* Done\n");
stdlib::Print("* Testing Slice(): Listing file sliced by regexp:\n");
array& sliced = rex.Slice(text);
for( long j = 0; j < sliced.length; j++ )
stdlib::Printf("%s\n", sliced[j]);
stdlib::Print("\n* Done\n");
stdlib::Print("* Testing Replace(): Enclosing all matches in file with curly braces:\n");
string s2 = rex.Replace(text, "{$0}");
stdlib::Print( s2 );
stdlib::Print("\n* Done\n");
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -