import re
regex = re.compile(r"matei 200 inheritance", flags=re.MULTILINE)
test_str = ("<?php\n\n"
"class Device {\n"
" protected $name;\n"
" protected $isOn = false;\n"
" \n"
" function __construct($name = \"Unknown Device\") {\n"
" $this->name = $name;\n"
" }\n"
" \n"
" function turnOn() {\n"
" $this->isOn = true;\n"
" echo \"{$this->name} is turned on.<br>\";\n"
" }\n"
" \n"
" function turnOff() {\n"
" $this->isOn = false;\n"
" echo \"{$this->name} is turned off.<br>\";\n"
" }\n"
" \n"
" function getStatus() {\n"
" $status = $this->isOn ? \"on\" : \"off\";\n"
" echo \"{$this->name} is currently {$status}.<br>\";\n"
" }\n"
"}\n\n"
"class Smartphone extends Device {\n"
" private $photos = 0;\n"
" \n"
" function __construct($name = \"Smartphone\") {\n"
" parent::__construct($name);\n"
" }\n"
" \n"
" function takePhoto() {\n"
" if ($this->isOn) {\n"
" $this->photos++;\n"
" echo \"Photo taken! (Total: {$this->photos} photos)<br>\";\n"
" } else {\n"
" echo \"Please turn on the {$this->name} first!<br>\";\n"
" }\n"
" }\n"
" \n"
" function showPhotoCount() {\n"
" echo \"Number of photos: {$this->photos}<br>\";\n"
" }\n"
"}\n\n\n"
"echo \"<h3>Device Class:</h3>\";\n"
"$myDevice = new Device(\"Television\");\n"
"$myDevice->turnOn();\n"
"$myDevice->getStatus();\n"
"$myDevice->turnOff();\n"
"$myDevice->getStatus();\n\n"
"echo \"<br><h3>Smartphone Class:</h3>\";\n"
"$myPhone = new Smartphone(\"iPhone 15\");\n"
"$myPhone->getStatus();\n"
"$myPhone->takePhoto();\n"
"$myPhone->turnOn();\n"
"$myPhone->takePhoto();\n"
"$myPhone->takePhoto();\n"
"$myPhone->takePhoto();\n"
"$myPhone->showPhotoCount();\n"
"$myPhone->turnOff();\n"
"?>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html