[LON-CAPA-users] regular expression
Guy Albertelli II
lon-capa-users@mail.lon-capa.org
Tue, 16 Aug 2005 10:40:21 -0400 (EDT)
Hi Hon-Kie,
> Is there a way to construct the following regular expression? I want the
> students to enter number1/(number2 * x) where number1 and number2 are known
> integers. However, number2 can be 1, so that means they can enter as
> number1/x and also, number1/(x) or number1/(1*x). Question: For the last 2
> answers, what I like to check is, if they type the left parenthesis '('
> then they need to enter the right parenthesis ')'. I look in the Mastering
> Regular Expressions book but could not find any info on how to check for an
> character.
this example also allows number1/(x*number2)
if ($num2 == 1) {
$re= '/^ \s* \Q$num1\E \s* \/ \s*
(
\( \s* 1 \s* \* \s* x \s* \)
| \( \s* x \s* \* \s* 1 \s* \)
| \( \s* x \s* \)
| x
)\s*$/x'
} else {
$re= '/^ \s* \Q$num1\E \s* \/ \s*
(
\( \s* \Q$num2\E \s* \* \s* x \s* \)
| \( \s* x \s* \* \s* \Q$num2\E \s* \)
)\s*$/x'
}
--
guy@albertelli.com 0-7-2-3-27,137