Despite attempts to master grep and related GNU software, I haven\'t come close to mastering regular expressions. I do like them, but I find them a bit of an eyesore all the sam
You don't need regex for this.
result = [w for w in vocab if len(w) >= 8]
but if regex must be used:
rx = re.compile('^.{8,}$')
# ^^^^ {8,} means 8 or more.
result = [w for w in vocab if rx.match(w)]
See http://www.regular-expressions.info/repeat.html for detail on the {a,b}
syntax.
if you do want to use a regular expression
result = [ w for w in vocab if re.search('^.{24}',w) ]
the {x} says match x characters. but it is probably better to use len(w)
\w will match letter and characters, {min,[max]} allows you to define size. An expression like
\w{9,}
will give all letter/number combinations of 9 characters or more
^.{8,}$
This will match something that has at least 8 characters. You can also place a number after the coma to limit the upper bound or remove the first number to not restrict the lower bound.
.{9,}
for "more than eight", .{8,}
for "eight or more"
Or just len(w) > 8