import re
# Start and end with letter or number
# pattern = "^[a-z0-9].*[a-z0-9]$"
# Start and end with letter or number, and consist only letter,
# number, dot, and hyphens
pattern = r"^[a-z0-9][a-z0-9. -]*[a-z0-9]$"
string_one = "hello world"
string_two = "hello ^ world 2"
string_three = "hello world *"
string_four = "Hello - World 9"
string_five = "hello - world 9"
string_six = "2hello.world 9"
if re.search(pattern, string_one):
print ("matched with string one: ",string_one)
if re.search(pattern, string_two):
print("matched with string two: ",string_two)
if re.search(pattern, string_three):
print ("matched with string three: ",string_three)
if re.search(pattern, string_four):
print("matched with string four: ", string_four)
if re.search(pattern, string_five):
print("matched with string five: ", string_five)
if re.search(pattern, string_six):
print("matched with string six: ", string_six)
aW1wb3J0IHJlCgojIFN0YXJ0IGFuZCBlbmQgd2l0aCBsZXR0ZXIgb3IgbnVtYmVyCiMgcGF0dGVybiA9ICJeW2EtejAtOV0uKlthLXowLTldJCIKCiMgU3RhcnQgYW5kIGVuZCB3aXRoIGxldHRlciBvciBudW1iZXIsIGFuZCBjb25zaXN0IG9ubHkgbGV0dGVyLAojIG51bWJlciwgZG90LCBhbmQgaHlwaGVucwpwYXR0ZXJuID0gciJeW2EtejAtOV1bYS16MC05LiAtXSpbYS16MC05XSQiCgoKc3RyaW5nX29uZSA9ICJoZWxsbyB3b3JsZCIKc3RyaW5nX3R3byA9ICJoZWxsbyBeIHdvcmxkIDIiCnN0cmluZ190aHJlZSA9ICJoZWxsbyB3b3JsZCAqIgpzdHJpbmdfZm91ciA9ICJIZWxsbyAtIFdvcmxkIDkiCnN0cmluZ19maXZlID0gImhlbGxvIC0gd29ybGQgOSIKc3RyaW5nX3NpeCA9ICIyaGVsbG8ud29ybGQgOSIKCgppZiByZS5zZWFyY2gocGF0dGVybiwgc3RyaW5nX29uZSk6CiAgICBwcmludCAoIm1hdGNoZWQgd2l0aCBzdHJpbmcgb25lOiAiLHN0cmluZ19vbmUpCgppZiByZS5zZWFyY2gocGF0dGVybiwgc3RyaW5nX3R3byk6CiAgICBwcmludCgibWF0Y2hlZCB3aXRoIHN0cmluZyB0d286ICIsc3RyaW5nX3R3bykKCmlmIHJlLnNlYXJjaChwYXR0ZXJuLCBzdHJpbmdfdGhyZWUpOgogICAgcHJpbnQgKCJtYXRjaGVkIHdpdGggc3RyaW5nIHRocmVlOiAiLHN0cmluZ190aHJlZSkKCmlmIHJlLnNlYXJjaChwYXR0ZXJuLCBzdHJpbmdfZm91cik6CiAgICBwcmludCgibWF0Y2hlZCB3aXRoIHN0cmluZyBmb3VyOiAiLCBzdHJpbmdfZm91cikKCmlmIHJlLnNlYXJjaChwYXR0ZXJuLCBzdHJpbmdfZml2ZSk6CiAgICBwcmludCgibWF0Y2hlZCB3aXRoIHN0cmluZyBmaXZlOiAiLCBzdHJpbmdfZml2ZSkKCmlmIHJlLnNlYXJjaChwYXR0ZXJuLCBzdHJpbmdfc2l4KToKICAgIHByaW50KCJtYXRjaGVkIHdpdGggc3RyaW5nIHNpeDogIiwgc3RyaW5nX3NpeCk=