import re
regex = re.compile(r"Zwechfreibaum01", flags=re.MULTILINE)
test_str = ("//++++++++++08++++++++++++++++++++\n\n"
"/+++++++++++ App.jsx ++++++++++++\n"
"import React from \"react\";\n"
"import PictureListAs05 from \"./components/PictureListAs05.jsx\";\n"
"import PictureListAs06 from \"./components/PictureListAs06.jsx\";\n\n"
"export default function App() {\n"
" return (\n"
" <div>\n"
" <h1>AS05 – Bilderliste</h1>\n"
" <div style={{ display: \"flex\", gap: \"2rem\" }}>\n"
" <PictureListAs05 grenze={80} farbe1=\"green\" farbe2=\"red\" />\n"
" <PictureListAs06 grenze={100} farbe1=\"blue\" farbe2=\"orange\" />\n"
" </div>\n"
" </div>\n"
" );\n"
"}\n\n\n"
"//+++++++++++++ PictureList05.jsx +++++++++++++++++++++++++\n\n"
"import React from \"react\";\n"
"import ShowPictureList from \"./ShowPictureList.jsx\";\n\n"
"const BILDER = [\n"
" { url: \"https://picsum.photos/seed/a/400\", alt: \"Wald\", datum: \"2025-02-01\", zahl: 120 },\n"
" { url: \"https://picsum.photos/seed/b/400\", alt: \"Gebirge\", datum: \"2025-02-02\", zahl: 60 },\n"
" { url: \"https://picsum.photos/seed/c/400\", alt: \"Meer\", datum: \"2025-02-03\", zahl: 200 },\n"
" { url: \"https://picsum.photos/seed/d/400\", alt: \"Stadt\", datum: \"2025-02-04\", zahl: 75 },\n"
" { url: \"https://picsum.photos/seed/e/400\", alt: \"Wüste\", datum: \"2025-02-05\", zahl: 95 },\n"
" { url: \"https://picsum.photos/seed/f/400\", alt: \"Wiese\", datum: \"2025-02-06\", zahl: 50 },\n"
"];\n\n"
"export default function PictureListAs05({ grenze, farbe1, farbe2 }) {\n"
" const GRENZE = grenze;\n"
" const FARBE1 = farbe1;\n"
" const FARBE2 = farbe2;\n\n"
" return (\n"
" <div>\n"
" <ShowPictureList\n"
" bilder={BILDER}\n"
" grenze={GRENZE}\n"
" farbe1={FARBE1}\n"
" farbe2={FARBE2}\n"
" />\n"
" </div>\n"
" );\n"
"}\n\n"
"//++++++++++++++ PictureList06.jsx+++++++++++++++++++++++\n\n"
"import React from \"react\";\n"
"import ShowPictureList from \"./ShowPictureList.jsx\";\n\n"
"const BILDER = [\n"
" { url: \"https://placebear.com/400/400\", alt: \"Bär im Wald\", datum: \"2025-02-01\", zahl: 120 },\n"
" { url: \"https://placebear.com/401/400\", alt: \"Bär am Berg\", datum: \"2025-02-02\", zahl: 60 },\n"
" { url: \"https://placebear.com/402/400\", alt: \"Bär am See\", datum: \"2025-02-03\", zahl: 200 },\n"
" { url: \"https://placebear.com/403/400\", alt: \"Bär in der Stadt\",datum: \"2025-02-04\", zahl: 75 },\n"
" { url: \"https://placebear.com/404/400\", alt: \"Bär in der Wüste\",datum: \"2025-02-05\", zahl: 95 },\n"
" { url: \"https://placebear.com/405/400\", alt: \"Bär auf der Wiese\",datum: \"2025-02-06\", zahl: 50 },\n"
"];\n\n"
"export default function PictureListAs06({ grenze, farbe1, farbe2 }) {\n"
" const GRENZE = grenze;\n"
" const FARBE1 = farbe1;\n"
" const FARBE2 = farbe2;\n\n"
" return (\n"
" <div>\n"
" <ShowPictureList\n"
" bilder={BILDER}\n"
" grenze={GRENZE}\n"
" farbe1={FARBE1}\n"
" farbe2={FARBE2}\n"
" />\n"
" </div>\n"
" );\n"
"}\n\n\n"
"//+++++++++++++++++++ PictureList.jsx ++++++++++++++++++++\n\n"
"import React, { useState } from \"react\";\n\n"
"export default function ShowPictureList({ bilder, grenze, farbe1, farbe2 }) {\n"
" const threshold = Number(grenze) || 0;\n\n"
" const imageArrayIndex = useState(0);\n"
" const currentIndex = imageArrayIndex[0];\n"
" const setCurrentIndex = imageArrayIndex[1];\n"
" const borderColor = bilder[currentIndex].zahl > threshold ? farbe1 : farbe2;\n"
" const currentImage = bilder[currentIndex];\n\n"
" return (\n"
" <>\n"
" <ul>\n"
" return (\n"
" <li key={currentIndex}>\n"
" <img\n"
" src={currentImage.url}\n"
" alt={currentImage.alt}\n"
" width={currentImage.zahl}\n"
" style={{ border: `4px solid ${borderColor}` }}\n"
" />\n"
" <p>{currentImage.alt}</p>\n"
" <small>{currentImage.datum}</small>\n"
" </li>\n"
" );\n"
" </ul>\n"
" <button onClick={() => setCurrentIndex(currentIndex + 1)}>\n"
" Nächstes Bild\n"
" </button>\n"
" <button onClick={() => setCurrentIndex(currentIndex - 1)}>\n"
" Vorheriges Bild\n"
" </button>\n"
" </>\n"
" );\n"
"}\n\n"
"//++++++++++ main.jsx +++++++++++++++++++\n\n"
"import { StrictMode } from 'react'\n"
"import { createRoot } from 'react-dom/client'\n"
"import App from './App.jsx'\n\n"
"createRoot(document.getElementById('root')).render(\n"
" <StrictMode>\n"
" <App />\n"
" </StrictMode>,\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