Você precisa da âncora de fim de linha $
para você regex:
import re
a = re.search("^l.*op$",line).group(0)
op$
Corresponde op
do final da string ou logo antes da nova linha no final da linha.
Estou tendo um arquivo de texto que contém algumas perguntas, como abaixo.
leptop
pencil
group
leptop
book
gruop
buk
grop
laftop
pensil
laptop
pancil
laptop bag
bok
a partir disso eu só quero consulta que começam com letra "l" e termina com "op". eu preciso fazer com regex.
eu tentei abaixo.
a = re.search("^l.*op",line).group(0)
mas estou recebendo
leptop
leptop
laftop
laptop
laptop # this one i don't want. because it's coming from the word "laptop bag"
precisa de ajuda valiosa.
Existe alguma maneira de obter como abaixo.
[leptop, leptop, laftop, laptop] [lápis, canetas, pancil] [grupo, grupo, grop] [livro, buk, bok] [bolsa para laptop]
Você precisa da âncora de fim de linha $
para você regex:
import re
a = re.search("^l.*op$",line).group(0)
op$
Corresponde op
do final da string ou logo antes da nova linha no final da linha.
Você não precisa realmente de um regex para isso. A função string.startswith
e string.endswith
fará este trabalho.
$ python3 -c 'import sys
with open(sys.argv[1]) as f:
for line in f:
if line.startswith("l") and line.strip().endswith("op"):
print(line, end="")' file
leptop
leptop
laftop
laptop