Macromedia dreamweaver 8-extending dreamweaver User Manual
370
Server Behaviors
The search string is defined as a regular expression by starting and ending with a slash (/) and
is followed by
is followed by
i
, which means that it is not case-sensitive. Within the regular expression,
special characters such as parentheses () and periods (.) are escaped by preceding them with a
backslash (\). The two parameters
backslash (\). The two parameters
rs
and
new__url
are extracted from the string by using
parenthetical subexpressions (the parameters must be enclosed in parentheses). In this
example, they are indicated by
example, they are indicated by
(\w+)
and
([^\r\n]*)
: These values correspond to the
regular expression values that are normally returned by
$1
and
$2
.
Optional search patterns
There might be cases where you want to identify a participant
even if some parameters are not found. You might have a participant that stores some optional
information such as a telephone number. For such an example, you could use the following
ASP code:
information such as a telephone number. For such an example, you could use the following
ASP code:
<% //address block
LNAME = "joe";
FNAME = "smith";
PHONE = "123-4567";
FNAME = "smith";
PHONE = "123-4567";
%>
You could use the following search patterns:
<quickSearch>address</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="lname">/LNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
<searchPattern paramNames="phone">/PHONE\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
</searchPatterns>
</searchPattern>
</searchPatterns>
In the previous example, the telephone number must be specified. However, you can make
the telephone number optional, by adding the
the telephone number optional, by adding the
isOptional
attribute, as shown in the
following example:
<quickSearch>address</quickSearch>
<searchPatterns whereToSearch="directive">
<searchPatterns whereToSearch="directive">
<searchPattern paramNames="lname">/LNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
<searchPattern paramNames="phone" isOptional="true">¬
/PHONE\s*=\s*"([^\r\n]*)"/i
</searchPattern>
</searchPattern>
<searchPattern paramNames="fname">/FNAME\s*=\s*"([^\r\n]*)"/i¬
</searchPattern>
<searchPattern paramNames="phone" isOptional="true">¬
/PHONE\s*=\s*"([^\r\n]*)"/i
</searchPattern>
</searchPatterns>
Now the participant is recognized, even if the telephone number is not found.