|
|
|
||||||||||||||
(?x) |
If at the beginning of a regular expression, it specifies to ignore whitespace in the regular expression and lets you use ## for end-of-line comments. You can match a space by escaping it with a backslash. For example, the following regular expression includes comments, preceded by ##, that are ignored by ColdFusion: reFind("(?x)
one ##first option
|two ##second option
|three\ point\ five ## note escaped spaces
", "three point five")
|
(?m) |
If at the beginning of a regular expression, it specifies the multiline mode for the special characters ^ and $. When used with ^, the matched string can be at the start of the of entire search string or at the start of new lines, denoted by a linefeed character or chr(10), within the search string. For $, the matched string can be at the end the search string or at the end of new lines. Multiline mode does not recognize a carriage return, or chr(13), as a new line character. The following example searches for the string "two" across multiple lines: #reFind("(?m)^two", "one#chr(10)#two")#
This example returns 4 to indicate that it matched "two" after the chr(10) linefeed. Without (?m), the regular expression would not match anything, because ^ only matches the start of the string. The character (?m) does not affect \A or \Z, which always match the start or end of the string, respectively. For information on \A and \Z, see Using escape sequences. |
(?i) |
If at the beginning of a regular expression for For example, the following line would return an index of 1: #reFind("(?i)hi", "HI")#
If you omit the (?i), the line would return an index of zero to signify that it did not find the regular expression. |
(?=...) |
If at the beginning of a regular expression, it specifies to use positive lookahead when searching for the regular expression. Positive lookahead tests for the parenthesized subexpression like regular parenthesis, but does not include the contents in the match - it merely tests to see if it is there in proximity to the rest of the expression. For example, consider the expression to extract the protocol from a URL: <cfset regex = "http(?=://)"> <cfset string = "http://"> <cfset result = reFind(regex, string, 1, "yes")> mid(string, result.pos[1], result.len[1]) This example results in the string "http". The lookahead parentheses ensure that the "://" is there, but does not include it in the result. If you did not use lookahead, the result would include the extraneous "://". Lookahead parentheses do not capture text, so backreference numbering will skip over these groups. For more information on backreferencing, see Using backreferences. |
(?!...) |
If at the beginning of a regular expression, it specifies to use negative lookahead. Negative is just like positive lookahead, as specified by (?=...), except that it tests for the absence of a match. Lookahead parentheses do not capture text, so backreference numbering will skip over these groups. For more information on backreferencing, see Using backreferences. |
(?:...) |
If you prefix a subexpression with "?:", ColdFusion performs all operations on the subexpression except that it will not capture the corresponding text for use with a back reference. |