Использовать try catch с бесконечным циклом while. Чтобы проверить пустую строку, используйте инструкцию IF, чтобы проверить, является ли строка пустой.
while True:
name = input("Enter Your Name\n")
if not name:
print("I did not understood that")
continue
else:
break
while True:
try:
salary = float(input("whats ur salary\n"))
except ValueError:
print("I did not understood that")
continue
else:
break
while True:
try:
print("whats ur age?")
age = int(float(input()))
except ValueError:
print("I did not understood that")
continue
else:
break
print("Hello "+ name + "\nYour salary is " + str(salary) + '\nand you will be ' + str(age+1) +' in a Year')
Вы не даете достаточно подробностей. Поскольку ваше первое выражение работает, я предполагаю, что вы используете режим Singleline
.
Следующее мое предположение состоит в том, что эта строка является частью большей строки.
^
соответствует начало строки по умолчанию
$
по умолчанию соответствует концу строки.
Теперь, поскольку ваша строка содержит материал до и после, вам нужно изменить это поведение по умолчанию:
С модификатором Multiline
, ^
соответствует началу строки, а $
- концу строки. Дополнительную информацию см. В документации .
Итак, ваше регулярное выражение должно выглядеть примерно так:
Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);