Location: PHPKode > scripts > Regexp Builder > tests/php_classes_header.php
<?php
require_once "../regexpBuilder.php";
/*
PHP class header. Capture the name of the class and the optional extension class.
Format: class name extends extensionName
LOGIC:
- class
- one or more spaces
- start capturing
- one or more letters, digit or underscore characters
- stop capturing
- start a new group
- one or more spaces
- extends
- one or more spaces
- start capturing
- one or more letters, digit or underscore characters
- stop capturing
- close group and match only if it's present
*/

$regexp=new regexpBuilder(CASE_INSENSITIVE);
$regexp->match("class")	//Class
->match(SPACE_CHAR)	//One or more spaces
->capture()	//start capturing
->matchOneOfTheseChars(LETTER_CHAR.DIGIT_CHAR."_")->frequency(ONE_OR_MORE)	//one or more letters, digit or underscore characters
->closeCapture()	//stop capturing
->openGroup()		//start a new group
->match(SPACE_CHAR)	//One or more spaces
->match("extends")	//extends
->match(SPACE_CHAR)	//One or more spaces
->capture()	//start capturing
->matchOneOfTheseChars(LETTER_CHAR.DIGIT_CHAR."_")->frequency(ONE_OR_MORE)	//one or more letters, digit or underscore characters
->closeCapture()//stop capturing
->closeGroup()->frequency(ZERO_OR_ONE);	//close group and match only if it's present

$match=$regexp->execOn("class test extends extensionName");
echo "class test extends extensionName<br>Match 1: ".$match[1][0]."<br>"."Match 2: ".$match[2][0]; //Match 1: test, Match 2: extensionName
$match=$regexp->execOn("class test");
echo "<br><br>class test<br>Match 1: ".$match[1][0]."<br>"."Match 2: ".(isset($match[2][0]) ? $match[2][0] : ""); //Match 1: test, Match 2:
?>
Return current item: Regexp Builder