import re
regex = re.compile(r"(│?\s{3,})*[├└]─{2} ")
test_str = ("├── Blog\n"
"│ └── _v_images\n"
"├── Essay\n"
"│ └── Encryption&Trust\n"
"├── Hidden\n"
"│ └── _v_images\n"
"├── Life\n"
"│ ├── Cuisine\n"
"│ ├── Game\n"
"│ ├── Ideas\n"
"│ ├── Linguistic\n"
"│ │ └── English\n"
"│ └── Music\n"
"├── Other\n"
"│ └── _v_images\n"
"├── PWN\n"
"│ └── _v_images\n"
"├── Programme\n"
"│ └── _v_images\n"
"├── Work\n"
"│ ├── Database\n"
"│ ├── GUI\n"
"│ │ └── CSS\n"
"│ ├── Language\n"
"│ │ └── DocString\n"
"│ │ └── __pycache__\n"
"│ ├── Network\n"
"│ ├── OS\n"
"│ │ ├── Android\n"
"│ │ │ ├── BuildTools\n"
"│ │ │ ├── DevTools\n"
"│ │ │ ├── Permissions\n"
"│ │ │ ├── PropertiesLogs\n"
"│ │ │ ├── Signer\n"
"│ │ │ │ ├── META-INF\n"
"│ │ │ │ └── webview\n"
"│ │ │ │ ├── META-INF\n"
"│ │ │ │ ├── assets\n"
"│ │ │ │ │ └── stored-locales\n"
"│ │ │ │ │ └── weblayer\n"
"│ │ │ │ ├── lib\n"
"│ │ │ │ │ ├── arm64-v8a\n"
"│ │ │ │ │ └── armeabi-v7a\n"
"│ │ │ │ └── res\n"
"│ │ │ │ ├── anim\n"
"│ │ │ │ ├── anim-v21\n"
"│ │ │ │ ├── animator\n"
"│ │ │ │ ├── animator-v21\n"
"│ │ │ │ ├── color\n"
"│ │ │ │ ├── color-v21\n"
"│ │ │ │ ├── color-v23\n"
"│ │ │ │ ├── drawable\n"
"│ │ │ │ ├── drawable-hdpi-v4\n"
"│ │ │ │ ├── drawable-ldrtl-hdpi-v17\n"
"│ │ │ │ ├── drawable-ldrtl-v17\n"
"│ │ │ │ ├── drawable-ldrtl-xhdpi-v17\n"
"│ │ │ │ ├── drawable-ldrtl-xxhdpi-v17\n"
"│ │ │ │ ├── drawable-ldrtl-xxxhdpi-v17\n"
"│ │ │ │ ├── drawable-night-hdpi-v8\n"
"│ │ │ │ ├── drawable-night-v8\n"
"│ │ │ │ ├── drawable-night-xhdpi-v8\n"
"│ │ │ │ ├── drawable-night-xxhdpi-v8\n"
"│ │ │ │ ├── drawable-night-xxxhdpi-v8\n"
"│ │ │ │ ├── drawable-v21\n"
"│ │ │ │ ├── drawable-v23\n"
"│ │ │ │ ├── drawable-v4\n"
"│ │ │ │ ├── drawable-xhdpi-v4\n"
"│ │ │ │ ├── drawable-xxhdpi-v4\n"
"│ │ │ │ ├── drawable-xxxhdpi-v4\n"
"│ │ │ │ ├── font\n"
"│ │ │ │ ├── interpolator\n"
"│ │ │ │ ├── interpolator-v21\n"
"│ │ │ │ ├── layout\n"
"│ │ │ │ ├── layout-land\n"
"│ │ │ │ ├── layout-v21\n"
"│ │ │ │ ├── layout-v22\n"
"│ │ │ │ ├── layout-v26\n"
"│ │ │ │ ├── menu\n"
"│ │ │ │ ├── raw\n"
"│ │ │ │ └── xml\n"
"│ │ │ └── UID\n"
"│ │ └── Linux\n"
"│ ├── Presentation\n"
"│ │ ├── Diagram\n"
"│ │ ├── Slides\n"
"│ │ │ └── images\n"
"│ │ └── Writing\n"
"│ ├── Project\n"
"│ ├── RE\n"
"│ ├── Service\n"
"│ ├── Tool\n"
"│ │ ├── Diff\n"
"│ │ ├── File\n"
"│ │ ├── Frida\n"
"│ │ │ └── scripts\n"
"│ │ ├── Git\n"
"│ │ ├── IO\n"
"│ │ ├── Shell\n"
"│ │ └── Text\n"
"│ └── Virtualization\n"
"│ └── Docker\n"
"└── 随笔\n"
" └── _v_images")
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