--JPRegex API JPRegex.activate ( sUserToken, sActivationKey ) --Match bMatch, tMatch, sError = JPRegex.matchFirst ( sPattern, sString, sOptFlags ) bMatch, tMatches, sError = JPRegex.matchAll ( sPattern, sString, sOptFlags ) bMatch, tMatches, sError = JPRegex.matchAllWithOverlaps ( sPattern, sString, sOptFlags ) --Match result sText = JPRegex.getMatchText ( tMatch ) nPosition = JPRegex.getMatchPosition ( tMatch ) --Get capturing group result sText = JPRegex.getMatchGroupText ( tMatch, nGroup ) nPosition = JPRegex.getMatchGroupPosition ( tMatch, nGroup ) --Replace sRes, nReplaceCount, sError = JPRegex.replaceFirst ( sPattern, sString, sReplace, sOptFlags ) sRes, nReplaceCount, sError = JPRegex.replaceAll ( sPattern, sString, sReplace, sOptFlags ) --Explode tExplode, sError = JPRegex.explode ( sPattern, sString, sOptFlags )
JPRegex is a LUA regex engine that will allow you to work with regular expressions in ShiVa. As it is all done in LUA, it will work on any platform a ShiVa game can be exported to, without worries about compatibility. You will find below the list of what JPRegex currently supports :
CHARACTER CLASSES A : character [ABC] : character set [^ABC] : negated set [A-Z] : range . : any character (except new line if flag 's' is not set) ESCAPED CHARACTERS + : match a reserved character (+*?^$.[]{}()|/) : tabulation character : line feed character w : word -> (alphanumeric & underscore, no accented characters). Equivalent to [A-Za-z0-9_] W : not word -> Matches any character that is not a word character (alphanumeric & underscore). Equivalent to [^A-Za-z0-9_] d : digit -> equivalent to [0-9] D : not digit -> equivalent to [^0-9] s : a white space or tab or line break S : not a white space or tab or line break ANCHORS ^ : beginning $ : end GROUPS AND REFERENCES (ABC) : capturing group QUANTIFIERS AND ALTERNATION + : 1 or more of the preceding token, as much as possible * : 0 or more of the preceding token, as much as possible {1} or {1,3} or {3,} or {,3} : quantifier for the preceding token ? : optional -> quantity of 0 or 1 of the preceding token ? : lazy -> makes the preceding quantifier lazy, causing it to match as few characters as possible. (A|Z) : alternation -> | acts like a OR boolean. The patterns will be tested in order POSIX notations : [[:punct:]] : not whitespace, letters or numbers [[:lower:]] : Equivalent to [a-z] [[:upper:]] : Equivalent to [A-Z] [[:alnum:]] : Equivalent to [A-Za-z0-9] [[:alpha:]] : Equivalent to [A-Za-z] [[:blank:]] : Equivalent to [ ] -> Matches spaces and tabs (but not newlines) [[:digit:]] : Equivalent to [0-9] [[:word:]] : Equivalent to w or [a-zA-Z0-9_] SUBSTITUTION : $1 : capture group -> Inserts the results of the specified capture group. $$ : escaped $ -> Inserts a $ sign $& : match -> Inserts the matched text FLAGS : U : ungreedy : will be as_few_as_possible by default and '?' following a quantifier will make it greedy s : single line -> the dot (.) ca also match new lines