The following should work the same for you, although it will not be exactly the same query style as in Ruby.
class ValidInput(object): def __init__(self,prompt,default="",regex_validate="", invalid_response="",correct_response=""): self.prompt=prompt self.default=default self.regex_validate=regex_validate self.invalid_response=invalid_response self.correct_response=correct_response def ask(self): fin="" while True: v_in=raw_input(self.prompt) if re.match(v_in,self.regex_validate): fin=v_in print self.correct_response break else: print self.invalid_response if self.default=="break": break continue return fin
And you would use it like:
my_input=ValidInput("My prompt (Y/N): ",regex_validate="your regex matching string here", invalid_response="The response to be printed when it does not match the regex", correct_response="The response to be printed when it is matched to the regex.") my_input.ask()
IT Ninja
source share