def matchSingleValue(regex): """ Regex only match one exact string. >>> matchSingleValue(RegexEmpty()) True >>> matchSingleValue(createString("abc")) True >>> matchSingleValue(createRange("a", "b")) False >>> matchSingleValue(createRange("a")) True >>> matchSingleValue(RegexAnd((RegexStart(), createString("abc")))) True """ cls = regex.__class__ if cls in (RegexEmpty, RegexString, RegexStart, RegexEnd): return True if cls == RegexAnd: return all( matchSingleValue(item) for item in regex ) if cls == RegexRange: return len(regex.ranges) == 1 and len(regex.ranges[0]) == 1 return False
def matchSingleValue(regex): """ Regex only match one exact string. >>> matchSingleValue(RegexEmpty()) True >>> matchSingleValue(createString("abc")) True >>> matchSingleValue(createRange("a", "b")) False >>> matchSingleValue(createRange("a")) True >>> matchSingleValue(RegexAnd((RegexStart(), createString("abc")))) True """ cls = regex.__class__ if cls in (RegexEmpty, RegexString, RegexStart, RegexEnd): return True if cls == RegexAnd: return all(matchSingleValue(item) for item in regex) if cls == RegexRange: return len(regex.ranges) == 1 and len(regex.ranges[0]) == 1 return False
def _eq(self, other): if len(self.content) != len(other.content): return False return all( item[0] == item[1] for item in itertools.izip(self.content, other.content) )
def _eq(self, other): if len(self.content) != len(other.content): return False return all(item[0] == item[1] for item in itertools.izip(self.content, other.content))