getGroup: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 33: | Line 33: | ||
</pre> | </pre> | ||
'''Example explained''' | |||
First off, normaly you only need one \ in a regex statement, but because MT uses regex itself and the statement is preparsed you need to double escape it, so \\. | First off, normaly you only need one \ in a regex statement, but because MT uses regex itself and the statement is preparsed you need to double escape it, so \\. | ||
*S = 'everything that is NOT a whitespace' | *S = 'everything that is NOT a whitespace' | ||
Line 48: | Line 49: | ||
* Every group after that will return partial matches that are within (). | * 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" | 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:13, 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
Example explained
First off, normaly you only need one \ in a regex statement, but because MT uses regex itself and the statement is preparsed 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 ().