I’m looking for how to create a regular expression, which is 100% equivalent to the “contains” method in the String class. Basically, I have thousands of phrases that I’m searching for, and from what I understand it is much better for performance reasons to compile the regular expression once and use it multiple times, vs calling “mystring.contains(testString)” over and over again on different “mystring” values, with the same testString values.
Edit: to expand on my question… I will have many thousands of “testString” values, and I don’t want to have to convert those to a format that the regular expression mechanism understands. I just want to be able to directly pass in a phrase that users enter, and see if it is found in whatever value “mystring” happens to contain. “testString” will not change it’s value ever, but there will be thousands of them so that is why I was thinking of creating the matcher object and re-using it over and over etc. (Obviously my regexp skills are not up to snuff)
You can use the
LITERALflag when compiling your pattern to tell the engine you’re using a literal string, e.g.:But are you really sure that doing that and then reusing the result is faster than just
String#contains? Enough to make the complexity worth it?