Я делаю что-то вроде «Синтаксического анализатора» с Kivy
, используя re
(обычные выражения).
Я хочу проверить правильный синтаксис только для базовых операций (например, + | - | * | / | (|)).
Пользователь связывает строку (с клавиатуры), и я проверяю ее с помощью регулярных выражений.
Но я не знаю, как использовать регулярные выражения в операторе if. То, что я хочу, это: если строка, которую пользователь вводит мне, не является правильной (или не проверяет с помощью регулярного выражения), выведите что-то вроде «inavlid string» и если это правильно, выведите «Valid string».
Я пробовал с:
if re.match(patron, string) is not None:
print ("\nTrue")
else:
print("False")
но не имеет значения, что есть у string
, приложение всегда показывает True
.
Извините, мой бедный английский. Любая помощь будет принята с благодарностью!
import re
patron= re.compile(r"""
(
-?\d+[.\d+]?
[+*-/]
-?\d+[.\d+]?
[+|-|*|/]?
)*
""", re.X)
obj1= self.ids['text'].text #TextInput
if re.match(patron, obj1) is not None:
print ("\nValid String")
else:
print("Inavlid string")
if obj1= "53.22+22.11+10*555+62+55.2-66"
на самом деле это правильно, и приложение выводит «Valid ...», но если я поставлю a
как этот "a53.22+22.11+10*555+62+55.2-66"
, то это неправильно, и приложение должно вывести invalid..
, но вместо этого оно все равно valid
.