Just Great Software

 Products 

 Buy Now 

 Contact 

 Newsletter 

 Affiliates 

 Blog 

 About JGsoft 

 

Ace Text - Store, manage, edit and reuse text from a central location
DeployMaster - Installation builder delivering your software with a good first impression
EditPad - Convenient, powerful and versatile text editor to edit all kinds of text files
HelpScribble - Full-featured help authoring tool for creating help files from start to finish
PowerGREP - Find files and information or search and replace through files and folders
Regex Buddy - Learn, create, understand, test, use and store regular expressions
Regular Expressions Complete Tutorial and Reference
      

Latest Issue of the
Just Great Software Newsletter

October 2008

Contents

1. Updated: RegexBuddy 3.2.0

Updated: RegexBuddy 3.2.0

RegexBuddy 3.2.0 is now available for download. This free update brings quite a number of fixes and improvements, and support for two more programming languages.

The two new languages are PowerShell and R. PowerShell is Microsoft's shell scripting language based on the .NET framework. As such, PowerShell uses the .NET regex flavor. New items under the Copy and Paste buttons in RegexBuddy's main toolbar allow you to copy and paste the regular expression and replacement text as a PowerShell string. PowerShell strings are a little different from other programming languages in that they use the backtick rather than the backslash as the escape character. For regular expressions, the upshot is that this eliminates the backslash fury unleashed by literal strings in most other programming languages. The PowerShell template on the Use tab uses PowerShell's -match and -replace operators as much as possible. For features not available through PowerShell operators, the code snippets use the System.Text.RegularExpressions.Regex class directly.

The R language is the programming language of the R project, an open source package for statistical computing. R has three regex flavors, called "basic", "extended" and "perl" in the R documentation. In RegexBuddy, these flavors are GNU BRE, GNU ERE and PCRE. The R language template on the Use tab only uses the PCRE flavor. PCRE supports all the features of GNU BRE and GNU ERE, but the opposite is not true. If you select the GNU BRE or GNU ERE flavor in RegexBuddy's main toolbar, an the R language on the Use tab, RegexBuddy will automatically convert your regex to PCRE when generating the source code snippet. In R, literal strings are formatted the same way as they are in JavaScript. Under the Copy and Paste buttons in RegexBuddy, you'll find new items for copying the regex and replacement text as JavaScript strings. Previously, RegexBuddy could only copy and paste JavaScript // operators. You can use JavaScript strings with R, JavaScript, JSON, and other JavaScript derivatives.

The History panel in RegexBuddy now supports drag-and-drop. You can move items by dragging them with the Shift key held down, and copy items with the Ctrl key held down. The default is a move when dropping the regex within the same instance of RegexBuddy, and a copy then dropping it in another instance of RegexBuddy. If you like to open two or more RegexBuddy instances side-by-side to compare regular expressions, drag-and-drop now makes it easy to copy or move your regular expressions between the various instances.

The display of RegexBuddy's regular expression debugger was rebuilt from the ground up in RegexBuddy 3.1.0. As with anything brand new, a bunch of new bugs came along for the ride. Version 3.2.0 fixes all the issues that we discovered or were reported to us. The only really serious issue was RegexBuddy locking up completely when running the debugger again after moving the cursor down in debug results with multiple attempts caused RegexBuddy to hang. A few improvements were made as well. The lines that say "match attempt failed" and "match found" now indicate the number of steps, even when the attempt is collapsed in the debug view. When doing a "debug everywhere" or "debug till end", this makes it easy to spot the attempts that take too many steps, and need inspection. If you expand an attempt and press the End key on the keyboard to move the text cursor to the end of a step, moving the cursor up and down will now also move the cursor horizontally, to keep it at the end of the step you're moving to. This makes it easy to keep your eye on the action, which is at the end of the match attempt in progress.

When copying a regex as a string type that does not support multi-line strings, such as Basic, C, Java or Pascal, free-spacing mode is now handled correctly. RegexBuddy converts this into a concatenation of strings, one per line. A line break character is now added to the end of each string, to make sure a comment in the regular expression still stops at the end of the line. The regular expression tokens \n, \r and \t are now escaped when using free-spacing mode if the string type also supports these at the string level. In free-spacing mode, \n at the string level is interpreted as whitespace to be ignored, while \n at the regex level is a token to be matched.

RegexBuddy now knows that Perl supports the \p{IsAlpha} notation for POSIX character classes, similar to Java's support for \p{Alpha}. The JGsoft flavor now supports both \p{Alpha} like Java, and \p{IsAlpha} like Perl.

Previously, RegexBuddy treated \0 as the overall regex match in the replacement text when using the Python flavor. Python does not support \0. You can use \g<0> to insert the whole regex match into the replacement text. Python always skips zero-width matches if they occur at the same position where a previous match ended. The JGsoft flavor does the same, while all other flavors only do so if the previous match is also zero-width. RegexBuddy now skips zero-width matches in the same way on the Test and GREP tabs when the Python flavor is selected. Previously, RegexBuddy only did this for the JGsoft flavor.

RegexBuddy 3.1.x would lock up on a regular expression like (a(b)c\2)d that has a backreference inside a capturing group when a flavor was selected that does not allow backreferences to unclosed capturing groups. With those flavors, (a(b)c\2)d is valid, but (a(b)c\1)d is an error. With other flavors, (a(b)c\1)d simply fails to match, because \1 fails until the regex engine exits the capturing group.

A series of other minor improvements and fixes were made as well. Please see http://www.regexbuddy.com/history.html for a complete version history.

If you have already purchased or upgraded to RegexBuddy 3, you can download this free update for free at http://www.regexbuddy.com/download.html

Version 3 is a major upgrade. If you own RegexBuddy 2, go to http://www.regexbuddy.com/upgradenow.html to purchase this new version at a significant discount (US$ 19.95 for a single user license). If you did not yet buy RegexBuddy, you can get your copy now at http://www.regexbuddy.com/buynow.html for US$ 39.95.

That's it for this month. Thank you for using our software, and see you next month!

Kind regards,

Jan Goyvaerts

Subscribe

Please type in your email address below if you wish to subscribe to the Just Great Software Newsletter. If you have previously subscribed but your email address has changed, please type in both your old and new email address so we can properly update our database.

Your email address:

If you are resubscribing because your email address has changed, please provide your old address here:

 

 

Page URL: http://www.just-great-software.com/newsletter.html
Page last updated: 26 March 2007
Site last updated: 15 November 2008

Published by Just Great Software Co. Ltd.
Copyright © 1996-2008 Jan Goyvaerts.
All rights reserved.