import re
regex = re.compile(r"((?:^\s{0,3}(?:Supp[lemntaryl]*\s+)?(?:Tab[les]*)(?![^\n]{0,40}(?:show[s]?\b|describes?\b|lists?\b|depicts?\b|explains?\b|represents?\b|summariz?s?es?\b|is\sa\b|ill?ustrates?d?)).*?(?:\n{1}|\n\s+)))|((?:^\s{0,3}(?:Supp[lemntaryl]*\s+)?(?:Tab[les]*)\s\w+\s*\n{1,3}))", flags=re.MULTILINE | re.IGNORECASE | re.DOTALL)
test_str = ("attraction model has 504% higher average power density than X-attraction model, and Y-repulsion model has 181% higher average power density than X-repulsion model. On the other hands, attraction case has higher electrical output than repulsion case. Y-attraction model has 328% higher average power density than Y-repulsion model, and X-attraction model has 117% higher average power density than X-repulsion model. The difference between X-attraction model and X-repulsion model was small because the value of power density was low. However the huge power density increase was measured in Y-attraction model from Y-repulsion model. The maximum power density was 54.96 µW/cm3 at 300 kΩ in Y-attraction model. Therefore, we can conclude that the Y-attraction model is optimized model for the piezoelectric energy harvesting system with magnetic pendulum movement. \n"
" \n"
" Table 3. Average Power Density along 4 Conditions\n"
"Pendulum direction Magnetic force Average power density (µW/cm3)\n"
"Y attraction 17.9\n"
"Y repulsion 5.45\n"
"X attraction 3.55\n"
"X repulsion 3.01\n\n"
"Table 2 \n"
"Relative Synonymous codon usage of native and optimized HCV E2 gene\n\n\n\n\n\n\n\n\n"
" \n"
"Figure 8. The Result of Power Density Increase Rate toward the Conventional Cantilever System along Pendulum Direction\n"
" \n"
"Figure 8 shows the power density increase rate of two attraction model toward the conventional cantilever beam piezoelectric energy harvesting system. In Y-attraction ")
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