:::: MENU ::::

AS3 Regular Expression Global Flag

I’ve been playing around with using Regular Expressions in AS3 using the RegExp class, and recently ran into an issue where only a single result was being returned when running my regex against a string that should have contained multiple results.

To give a bit more detail, I was trying to parse all of the tags out of an HTML document. I went about doing this by using the match() method of the String class, which returns an Array containing all the matches found in the given String. The basic code was as follows:

As noted in my comment, this would always return an Array containing only one result (even though I could see multiple matches in the string).

The Solution:
The reason my search was only returning a single result was that I did not include the global flag in my RegExp. The reason I did include it is that I had never heard of it. For those of you that have also not heard of it: “When the g (global) flag is not included, a regular expression matches no more than one match.” Luckily, its’ implementation is quite simple. All you need to do is include “g” at the end of your expression.

So to update my original code to include all matches:

There are also some additional flags that you can include in your Regular Expressions, you can read about them all here: http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ea7.html

One Comment

So, what do you think ?