Last Match Properties
After a successful pattern-matching attempt, the apgExp object retains information about the last-matched patterns or phrases. Unlike the result object which retains all matched phrases for all rule names, the apgExp object retains only the last matched.
Syntax
var exp = new apgExp(pattern[, flags]); var result = exe.exec(input);
Last Match Properties
- exe.input (alias exe["$_"]): A copy of the input string†.
- exe.lastMatch (alias exe["$&"]): A copy of the last-matched pattern - same as result[0]
- exe.leftContext (alias exe["$`"]): Prefix of the input string up to the first character of the matched pattern.
- exe.rightContext (alias exe["$'"]): Suffix of the input string, the phrase following the matched pattern.
- exe.rules (alias exe["${rule-name}"]): The last-matched phrase for the named rule.
† If Unicode mode is true, i.e. flags = "u", all strings are arrays of integer character codes, otherwise it is a JavaScript string.
See Also
Example
var pattern, exp, str, result; pattern = 'word = alpha *(alpha / num)\n'; pattern += 'alpha = %d65-90 / %d97-122\n'; pattern += 'num = %d48-57\n'; exp = new apgExp(pattern); str = "---ab12..."; result = exp.exec(str); console.log("exp.leftContext : "+exp.leftContext); console.log('exp["$`"] : '+exp["$`"]); console.log("exp.lastMatch : "+exp.lastMatch); console.log('exp["$&"] : '+exp["$&"]); console.log("exp.rightContext: "+exp.rightContext); console.log('exp["$\'"] : '+exp["$'"]); console.log("exp.rules.word : "+exp.rules.word); console.log("exp[${word}] : "+exp["${word}"]); console.log("exp.rules.alpha : "+exp.rules.alpha); console.log("exp[${alpha}] : "+exp["${alpha}"]); console.log("exp.rules.num : "+exp.rules.num); console.log("exp[${num}] : "+exp["${num}"]); /* result */ exp.leftContext : --- exp["$`"] : --- exp.lastMatch : ab12 exp["$&"] : ab12 exp.rightContext: ... exp["$'"] : ... exp.rules.word : ab12 exp[${word}] : ab12 exp.rules.alpha : b exp[${alpha}] : b exp.rules.num : 2 exp[${num}] : 2