python - use RE to find string consisting only of Latin letters, digits and underscores and they can't start with a digit -
i want use regular expression('re') find if variable names consist of latin letters, digits , underscores , can't start digit.
i tried using
in [3]: name='qq-q' in [4]: re.match("[a-za-z_][0-9a-za-z_]*",name) out[4]: <_sre.sre_match object; span=(0, 2), match='qq'> in [5]: name='kri[shna0' in [6]: re.match("[a-za-z_][0-9a-za-z_]*",name) out[6]: <_sre.sre_match object; span=(0, 3), match='kri'> can 1 explain me why above expression matches '-' , '[' in above?
you there! in regex, * matches 0 or more of given character, matching longest sequence. instance a* match aaabcde , match aaa. match bcde wit empty match, match nonetheless. achieve want need add $ @ end of pattern:
re.match("[a-za-z_][0-9a-za-z_]*$",name) this requests pattern match input until end of line, represented $
if using re.search, need start pattern ^. not necessary re.match since matches beginning of string: python3 doc: search vs match
Comments
Post a Comment