getGroup
getGroup() Function
• Introduced in version 1.3b48
Returns the specified capture group for the specified match that was found using strfind()
Usage
getGroup(id, match, group)
Where
- id is the id returned by strfind()
- match is the number of the match found by strfind()
- group is the number of the capture group found by strfind()
Example
[h: id = strfind("this is a test", "(\\S+)\\s(\\S+)\\s*")]
match 1, group 0 = [getGroup(id, 1, 0)]<br>
match 1, group 1 = [getGroup(id, 1, 1)]<br>
match 1, group 2 = [getGroup(id, 1, 2)]<br>
match 2, group 0 = [getGroup(id, 2, 0)]<br>
match 2, group 1 = [getGroup(id, 2, 1)]<br>
match 2, group 2 = [getGroup(id, 2, 2)]<br>
Returns
match 1, group 0 = this is match 1, group 1 = this match 1, group 2 = is match 2, group 0 = a test match 2, group 1 = a match 2, group 2 = test
So how does it work: First off, normaly you only need one \ in a regex statement, but because MT uses regex itself you need to double escape it, so \\. S = 'everything that is NOT a whitespace' s = 'whitespace + = 'one or more'
- = '0 or more
So \\S means grab the first none-whitespace you encounter, \\S+ means grap the first none-whitespace you encounter AND ALL characters after that until you encounter a whitespace So the regex statement looks for (word)(whitespace)(word)(0 or more whitespace). This will deliver 2 matches: "this is" and "a test". The first match is match 1, the second match 2. Within one match there are 1 or more groups: The first group '0' returns the ENTIRE match.
The second group returns the first partial match that is withing (). So group 1 will return the first (\\S) part and group 2 will return the second (\\S) of the regex statement. These are respectively (for the first match): "this" and "is"