import re
regex = re.compile(r'''
(?:^|(?<=\s)) # delimitador inicial
[+-]?(?:\d+\.\d+|\d+\.|\.\d+|\d+) # valores con o sin signo
(?:e[+-]?\d+)? # parte exponencial
(?=\s) # delimitador final
''', flags=re.IGNORECASE | re.VERBOSE)
test_str = ("Hace coincidir para el sistema de numeración decimal valores numéricos aislados, es decir, valores no unidos a otros caracteres.\n"
"test: 11 +11 -11 99-99 a99 a+99 a-99 99a +99a -99a\n"
"22e22 22e+22 +22e22 +22e+22\n"
"22.22 22. .22\n"
"22.e22 22.e+22 22.22e22 22.22e+22 .22e22 .22e+22\n"
"88e 88e+ e88 e+88 88e88.")
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