getGroup: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 35: | Line 35: | ||
So how does it work: | 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 \\. | 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 = 'everything that is NOT a whitespace' | ||
s = 'whitespace | *s = 'whitespace | ||
+ = 'one or more' | *+ = 'one or more' | ||
* = '0 or more | *<nowiki>*</nowiki> = '0 or more | ||
So \\S means grab the first none-whitespace you encounter, | 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 | \\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: | 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. | "this is" and "a test". The first match is match 1, the second match 2. | ||
Within one match there are 1 or more groups: | Within one match there are 1 or more groups: | ||
The first group '0' returns the ENTIRE match. | * The first group '0' returns the ENTIRE match. | ||
* Every group after that will return partial matches that are within (). | |||
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" | |||
}} | }} | ||
[[Category:String Function]] | [[Category:String Function]] |
Revision as of 07:10, 28 September 2012
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.
- Every group after that will return partial matches that are within ().