У меня есть запрос Cypher, который действует как предложение LIKE, и он отлично работает при непосредственном использовании в Neo4J.
MATCH (u:User) WHERE u.username =~ '(?i).*SUBSTRING.*' RETURN u;
Но как только запрос помещается в строковую переменную в python, он выдает ошибку.
Код Python:
def get_search_results(self, user_input):
query = "MATCH (u:User) WHERE u.username =~ '(?i).*{user_input}.*' RETURN u; "
return graph.run(query, {"user_input": user_input}).data()
выдает ошибку:
ClientError: SemanticError: Invalid Regex: Illegal repetition near index 5
(?i).*{user_input}.*
^
Я проверил онлайн, чтобы проверить, действительно ли регулярное выражение, и, кажется, оно работает просто отлично. Есть ли что-то простое, что я просто забываю о питоне и о том, как он обрабатывает регулярные выражения?