REFind()

edit

Uses a regular expression (RE) to search a string for a pattern.

The search is case sensitive.

REFind( reg_expression=string, string=string, start=number, returnSubExpressions=boolean, scope=string, multiline=boolean );

Returns: any

Argument Description Default
reg_expression
string, required
edit

Regular expression for which to search. Case sensitive.

string
string, required
edit

String in which to search.

start
number, optional
edit

A positive integer. Position in the string at which to start search. The default value is 1.

1

returnSubExpressions
boolean, optional
edit

Default: false, If set true means returns the result as a struct with keys pos, match and len.

Each are an array with elements for the position and length of the match (first element), and the position and length of any matched subexpressions in the subsequent elements.

scope
string, optional
edit

One: (Default)Returns the first value that matches the regex

All: Returns all values that match the regex

multiline
boolean, optional
edit

If true indicate the regular expression should treat input as having multiple lines. This option affects the interpretation of the ^ and $ metacharacters. When true the ^ metacharacter matches at the beginning of every line, and the $ metacharacter matches at the end of every line. Additionally the . metacharacter will not match newlines when true.

Introduced: 5.3.8.23

false

Usage Notes

edit

The regex engine depends on the application settings (this.regex.type). Up to Lucee 8 the default is perl (Apache ORO), which is deprecated: Lucee 9 uses java as the default, see Regex Migration to Lucee 9.

Examples

edit
	writeDump(REFind("a+c+", "abcaaccdd"));
	writeDump(REFind("a+c*", "Abcaaccdd"));
	writeDump(REFind("['[:upper:]']", "abcaacCDD"));
	writeDump(REFind("[\?&]rep = ", "report.cfm?rep = 1234&u = 5"));
	teststring1 = "The cat in the hat hat came back!";
	st1 = REFind("(['[:alpha:]']+)[ ]+(\1)",teststring1,1,"TRUE");
	writeDump(st1['len'][3]);
	teststring2 = "AAAXAAAA";
	st2 = REFind("x",teststring2,1,"TRUE");
	writeDump(arrayLen(st2['pos']));

See also