ActionScript 3.0 :: RegEx Var To Match Out The Ends Of A Mathematical Expressions Out Of A String
Aug 21, 2011
I've gotten stuck on some issue using AS3 and RegEx. I'm trying to use a RegEx var to match out the ends of a mathematical expressions out of a string. But for some reason, the RegEx only matches the first expression and ignores the one after the conditional.
I have to parse out color information from HTML data. The colors can either be RGB colors or file names to a swatch image. I used [URL] to develop and test the patterns. I copied the AS regular expression code verbatim from the tool into Flex Builder. But, when I exec the pattern against the string I get a null. Here are the patterns and an example of the string (I took the correct HTML tags out so the strings would show correctly):
In Actionscript and Adobe Flex, I'm using a pattern and regexp (with the global flag) with the string.match method and it works how I'd like except when the match returns multiple occurrences of the same word in the text. In that case, all the matches for that word point only to the index for the first occurrence of that word. For example, if the text is "cat dog cat cat cow" and the pattern is a search for cat*, the match method returns an array of three occurrences of "cat", however, they all point to only the index of the first occurrence of cat when i use indexOf on a loop through the array. I'm assuming this is just how the string.match method is. I want to find the specific indices of every occurrence of a match, even if it is of a word that was already previously matched.
I have the following as3 function below which converts normal html with links so that the links have 'event:' prepended so that I can catch them with a TextEvent listener.
protected function convertLinks(str:String):String { var p1:RegExp = /href|HREF="(.[^"]*)"/gs;
[Code]....
How can i modify my function so that links with 'event:' at the start are NOT matched and are left unchanged?
I need 3 different regular expressions one that finds at the beginning of the string a 'D' and a space then a name, so 'D patrickgates hello there' would return 'D patrickgates', or if all possible would return just 'patrickgates' one that will find the @ sign and a name together anywhere in the string so '@patrickgates hello, world' would work and return '@patrickgates' or if at all possible would return just 'patrickgates' one that will find 'RT' and a space and then '@' and the username at the beginning of the string so 'RT @patrickgates' would work if returning just the username and also being true isn't possible with one regex, then I could use one to match to, and one that will delete the 'D' or the '@' or the 'RT'.
I'm using regular expression to search word in a string, for example
var patrn:RegExp = new RegExp("\bit's\b"); var str:String = "Heres my problem in it and it's so help me guys."; trace(patrn.exec(str)); //result is null
My problem is I can't search the data in a string which has special character like ('/,/.). What regular expression string is capable solving my problem?
and want everything between the ( and the %)the string looks like this: (-24%)I now get a return back "(-24" and have searched for a long time to find a solution but didn't find any.
I am trying to get a regex match on HTML code that is parsed into a text box in flash. I have successfully loaded the HTML code and then began the regex matching, but am stuck on getting the right regex expression to match. The code that I am using in html page builds a tree view list on the html page, so once it's loaded into the flash text box, i am trying to match the html pages to build a list from. The code below is what I am trying to match.
The code I want to match is the first two items in quotes for each entry to build the array list of page names, and their URL. The problem is that the pages won't be named as nice as the example below. Each time it can be a different page name, and page url, so I need to match what is in the first two quotes.
I have the following regex, which will match all the <br> and <br /> tags in a string:
/<br[s|/]*>/gi
I actually want to match every set of two consecutive tags, with valid matches being:
<br><br> <br/><br> <br><br/> <br/><br/> (and all variations with a space before the slash)
Obviously I can just double up the expression to /<br[s|/]*><br[s|/]*>/gi, but is there a shorter way of taking the first expression and saying "this, but twice"?
I am trying to get a regex match on HTML code that is parsed into a text box in flash. I have successfully loaded the HTML code and then began the regex matching, but am stuck on getting the right regex expression to match. The code that I am using in html page builds a tree view list on the html page, so once it's loaded into the flash text box, i am trying to match the html pages to build a list from. The code below is what I am trying to match. The code I want to match is the first two items in quotes for each entry to build the array list of page names, and their URL. The problem is that the pages won't be named as nice as the example below. Each time it can be a different page name, and page url, so I need to match what is in the first two quotes.[code]
I am not new to regex but have come across a problem I can't seem to solve. I'm trying to locate a specific HTML tag that has a specific attribute/value pair (it may have other attributes, too, but those are optional), extract it's contents as a backreference and wrap a new custom tag around it. The original tag is:
I'm using a pattern and regexp (with the global flag) with the string.match method and it works how I'd like except when the match returns multiple occurrences of the same word in the text. In that case, all the matches for that word point only to the index for the first occurrence of that word. For example, if the text is "cat dog cat cat cow" and the pattern is a search for cat*, the match method returns an array of three occurrences of "cat", however, they all point to only the index of the first occurrence of cat when i use indexOf on a loop through the array. I'm assuming this is just how the string.match method is (although please let me know if i'm doing something wrong or missing something!). I want to find the specific indices of every occurrence of a match, even if it is of a word that was already previously matched.
I'm using a pattern and regexp (with the global flag) with the string.match method and it works how I'd like except when the match returns multiple occurrences of the same word in the text. In that case, all the matches for that word point only to the index for the first occurrence of that word. For example, if the text is "cat dog cat cat cow" and the pattern is a search for cat*, the match method returns an array of three occurrences of "cat", however, they all point to only the index of the first occurrence of cat when i use indexOf on a loop through the array. I'm assuming this is just how the string.match method is. I want to find the specific indices of every occurrence of a match, even if it is of a word that was already previously matched.
Trying to replace a portion of a string with a "-" if it matches a string variable in AS3.
var re:RegExp = new RegExp(imageArray[j][1],"gi"); trace(imageArray[jTemp][2].replace(re,"-"));
imageArray[jTemp][2] is a string imageArray[j][1] is a string as well I'm not getting the result I expect. I would like trace above to return 'permanentContainer-' Here are the traces for the above variables
I'm trying to use regular expressions with the String.replace() method to manipulate a string to replace all instances of a forward slash "/" with a period "."
So for instance, if I start with this String: "things/stuff/cheese/yum"
I want to convert it to: "things.stuff.cheese.yum"
Easy enough if I want to replace a letter... let's say I wanted to replace all instances of the letter "e", I would do this: Code: var str:String = "things/stuff/cheese/yum"; var myPattern:RegExp = /e/g; trace(str.replace(myPattern, ".")); // returns: "things/stuff/ch..s./yum" ... but how do I replace all instances of "/"??
I'm trying to work with RegEx to split a large string into smaller sections, and as part of this I'm trying to replace all instances of a substring in this larger string. I've been trying to use the replace function but this only replaces the first instance of the substring. How can I replace al instances of the substring within the larger string?
I want to alter the text color inside a string that has some HTML tags using regular expressions.My question is how can I alter the letters only of the text between html tags and not inside the html tagsI am using something like this:
ActionScript Code: var exp:RegExp = new RegExp(textfield.text,"i") str = str.replace(exp, "<font color='#FF0000'>$&</font>");
I have absolutely no knowledge in Regex whatsoever. Basically what I'm trying to do is have an error class that I can use to call errors (obviously) which looks like this:
package avian.framework.errors { public class AvError extends Object {
[Code].....
The idea is to replace {0} with the first parameter parsed in ...params, {1} with the second, etc.
I've done a bit of research and I think I've worked out that I need to search using this pattern:
I have a text field within Flash that contains a block of (obviously) text. What I want to do is perform a search on the content of the text field that returns the x & y coordinate and the width & height of the found text. The result will be used to place a visual element over that portion of the text box.
For example: var pattern:RegExp = /d+/g; var found:Array = box.text.match(pattern); var i:String; for each(i in found) { /** * Find the x, y, width, height of the matched text in the text field * Use result to place transparent yellow box around text */ } Which visually should result in something like:
Code: var s:String = '%include %unquote(&open.gtestit&close);'; var re:RegExp = /([%&]?w+)/g; var a:Array = s.match(re); trace(a.join(' '));
I'm splitting the string up into words (w) where the word might have an optional % or & in front of it. The output is what I expect:
Code: %include %unquote &open gtestit &close
Is there a way to get the index of each matched string in one call? I know I can walk the original string using the resulting array and get indexes, but was hoping there was something similar to MATCH(). Something like:
I tried to use it and it returns null, although the same string tested on RegExr works fine:
var linkRegEx:RegExp = new RegExp("(https?://)?(www.)?([a-zA-Z0-9_%]*).[a-z]{2,4}(.[a-z]{2})?((/[a-zA-Z0-9_%]*)+)?(.[a-z]*)?(:d{1,5})?","g"); var link:String = 'generic links: www.google.com http://www.google.com google.com';
I have a string that is similar to a path, but I have tried some regex patterns that are supposed to parse paths and they don't quite work.
Here's the string f|MyApparel/Templates/Events/ I need the "name parts" between the slashes. I tried (w+) but the array came back [0] = "f" and [1] = "f". I tested the pattern on [URL] and it seems to work correctly.
Here's the AS code: var pattern : RegExp = /(w+)/g; var hierarchy : Array = pattern.exec(params.category_id); params.name = hierarchy.pop() as String;
I'm new to actionscript and i cant seem to get the regex syntax right in actionscript3. The task is straight forward, i want to make sure that the first two characters in a given string are alphabets and nothing else.[code]