У меня проблемы с сопоставлением регулярных выражений, когда у меня есть антисла sh, вышедшая из-под квадратной скобки
import re
def test_regex(test_number, regex_to_test, string_to_test):
if re.match(regex_to_test, string_to_test) is None:
print("Test #{0} FAILED ! Returned value was None".format(test_number))
else:
print("Test #{0} OK".format(test_number))
# REGEX APPLIED STRING REAL STRING
test_regex(0, "\\\{\\\}", "\\{\\}") # \{\}
test_regex(1, "\\\{\\\\\\\}", "\\{\\\}") # \{\} or :\{\\} ???
test_regex(2, "\\\{\\\\\\\}", "\\{\\\\}") # \{\\}
# Now we replace in test '{' and '}' respectively by '[' and ']'
test_regex(3, "\\\[\\\]", "\\[\\]") # \[\]
test_regex(4, "\\\[\\\\\\\]", "\\[\\\]") # \[\] or :\[\\] ???
test_regex(5, "\\\[\\\\\\\]", "\\[\\\\]") # \[\\]
# Extra incomprehensible
test_regex(6, "\\\{\\\}", "\{\}") # {}
test_regex(7, "\\\\{\\\\}", "\{\}") # {}
# Now we replace in test '{' and '}' respectively by '[' and ']'
test_regex(8, "\\\[\\\]", "\[\]") # []
test_regex(9, "\\\\[\\\\]", "\[\]") # []
Вывод:
Test #0 OK
Test #1 OK
Test #2 OK
Test #3 FAILED ! Returned value was None
Test #4 FAILED ! Returned value was None
Test #5 FAILED ! Returned value was None
Test #6 OK
Test #7 OK
Test #8 FAILED ! Returned value was None
Test #9 FAILED ! Returned value was None
Зачем переходить с '{ 'и'} 'на' ['и'] 'изменить все?
Как я могу отредактировать свое регулярное выражение, чтобы тесты # 3 и # 4 работали как' {'и'} '?