Precompile it using class recompile
and include
the resulting code fragment into your Java source code.
Some REs never change. Those that don’t can be precompiled to
speed up your program’s initialization. The class
recompile
(the only class in this API whose name
doesn’t fit the Java capitalization style rules) contains a
main program that requires two arguments: a Java identifier prefix
and an RE pattern. When running it, remember that you should quote
the RE pattern, as many of the special characters are the same for
the REs as they are for many command-line interpreters. You run it by
giving the java command, the full class name,
the identifier prefix, and the RE pattern as one command line. Once
you’ve seen that the RE is correct, you can run the command
again, redirecting the results into a new Java file. You can then
edit this file into a complete program or copy it into an existing
Java file.
> java org.apache.regexp.recompile Name "[A-Z][a-z]+" // Pre-compiled regular expression '[A-Z][a-z]+' private static char[] NamePatternInstructions = { 0x007c, 0x0000, 0x0019, 0x005b, 0x0001, 0x0005, 0x0041, 0x005a, 0x005b, 0x0001, 0x0005, 0x0061, 0x007a, 0x007c, 0x0000, 0x0006, 0x0047, 0x0000, 0xfff8, 0x007c, 0x0000, 0x0003, 0x004e, 0x0000, 0x0003, 0x0045, 0x0000, 0x0000, }; private static RE NamePattern = new RE(new REProgram(NamePatternInstructions)); > java org.apache.regexp.recompile Name "[A-Z][a-z]+" > Name.java >
The stuff that looks like a dump listing (the numbers with
0x
at the front) are not a compiled Java program,
but rather a compiled regular expression. It is there to speed up the
runtime execution of your program.
The file (Name.java
in this example) can be
edited to start a new Java program or copied into an existing file.
On some platforms, you can bypass that step and simply select the
text with the mouse, copy it, and paste it into an editor or IDE
editing window. In either case, the goal is to avoid manually
retyping it; that would be error-prone and downright foolish.
18.118.186.143