Skip to main content

Fixed Bugs With Saving Locally, The Analyzer, And a New Recommendation Engine

Bug Fixes

Today's update takes care of a couple bugs:
  1. Saving locally to your computer with Regex Hero Professional would fail with certain special characters.
  2. The analyzer would fail in rare situations involving very complex character classes.

Recommendation Engine

And lastly, I've included a beta version of a new recommendation engine. This is available only to users of Regex Hero Professional. The recommendations that are produced are all related to performance. And the type of recommendations that are produced are limited at this point. Often you'll see the message, "No recommendations found." This is something I intend to continue to work on and improve in the upcoming months.

Here are the possible recommendations I've included so far:

  1. IgnoreCase is not needed and slows down processing. Please disable it. This one determines when the IgnoreCase flag isn't doing anything for you. For example, \w matches word characters and it's case insensitive, so adding the IgnoreCase just for that would be pointless and would slow down the regular expression.
  2. Redundant quantifiers may be slow. Please remove the first quantifier. This identifies situations such as x+x+. The '+' quantifier used back to back on the same character does nothing but make the regular expression much slower than it should be. This can be simplified to xx+.
  3. Alternations are slow. Please change to a character class. This identifies single character alternations such as a|b|c. It is slightly more efficient to use [abc] instead.
  4. Do not repeat 3 or more characters. Use a numbered quantifier instead. This is a minor one, but rather than \w\w\w you can use \w{3} and see slightly improved performance. The performance gains are greater the more characters you're dealing with.
  5. Do not perform case insensitive matching with a character class. Use the IgnoreCase option instead. In some old regex implementations, there was no IgnoreCase flag. So the workaround would be to explicitly include both cases, e.g. [Aa][Bb][Cc]. But there's no need for that anymore, and it's more efficient to just use the IgnoreCase option.
There will be more rules coming, as well as improvements to the intelligence and guidance behind these existing rules. But the big feature to come next is to actually allow you to simply click a button to fix the problem.



Comments

Popular posts from this blog

Installer for Desktop version of Regex Hero

As Firefox just dropped support for Silverlight I really needed a solution for Regex Hero. So I created an installer for it. It's still Silverlight, but by using the installer you can install it directly to your computer and never need to open it in a browser. If you visit regexhero.net/tester and don't have a browser that supports Silverlight (IE is the only one left), then you'll see download links for 64-bit and 32-bit versions of the installer. When you install it you'll see a link over on the right hand side that says "Activate Regex Hero". This process connects your desktop version of Regex Hero with your online account. So if you're a licensed user this is how you'll gain access to all of those licensed features. Note: Currently there will be a security warning when you try to run either one of these installers. I'm in the process of obtaining a code signing certificate and will update them as soon as possible. You may be wondering a...

Regex Hero Professional is Now Free

Regex Hero is now completely free!  I've been working on this tool off and on for the past 8 years. I spent a lot of time making it very powerful and easy for developers to create efficient regular expressions. Throughout most of this time it's been a paid product. However, with the added pressure of other free tools out there getting better all the time, I've finally decided to make Regex Hero free as well. Enjoy! Try Regex Hero at http://regexhero.net/tester/

Upcoming HTML5 / JavaScript Version of Regex Hero

In the next few months I'll be working on a JavaScript version of Regex Hero. The need to do this comes from the fact that Chrome has dropped support for Silverlight. It's also not supported by the new Microsoft Edge web browser. So the pressure is mounting. Forgive me for not doing something about this sooner. I've had a very busy and exciting year. Recently I moved to a new city and just a few weeks ago I got married. Nonetheless, my plans are to make Regex Hero better than ever and usable on more browsers and devices than ever. Fortunately, there now exists Javascript libraries that'll emulate the .NET framework (even the .NET Regex Class library). The Regex Class library is the main thing I really need to build Regex Hero in JavaScript. JavaScript wasn't an option 6 years ago when I first built Regex Hero in Silverlight. But now that it is, I'm excited about it. I will post updates on this blog as the new development progresses.