正则表达式:小写字母使用'a'到'e'的4个字母单词

Jac*_*ack 0 python regex

我可以设法从az获得这个四字母单词^[a-z]{4}$但是我不知道如何得到它所以这个单词中有aa和e.我试过这个,但它最终只能通过ae获得世界.^[a-z]{2}[a][e]$

import re
import sys
import time

pattern = '^[a-z]{4}$[a][e]' 

#c = ^[^a][a]{2}

regexp = re.compile(pattern)

inFile = open('words.txt','r')
outFile = open('exercise04.log','w')


for line in inFile:
    match = regexp.search(line)
    if match:
        time.sleep(0.1)
        print(line)
        outFile.write(line)

inFile.close()
outFile.close()
Run Code Online (Sandbox Code Playgroud)

示例输出 ^[a-z]{2}[a][e]$

alae

blae

brae

frae

spae

thae

twae
Run Code Online (Sandbox Code Playgroud)

我正在寻找随机词,如

akes
aejs
soae
skea
esao 
Run Code Online (Sandbox Code Playgroud)

Avi*_*Raj 5

您需要使用前瞻来检查包含a和的行e

^(?=.*?a)(?=.*?e)[a-z]{4}$
Run Code Online (Sandbox Code Playgroud)

DEMO

说明:

  • ^ 开始一行.
  • (?=.*?a)积极前瞻断言a在该特定行中必须存在一个字母.
  • (?=.*?e)积极前瞻断言e在该特定行中必须存在一个字母.Lookarounds通常不匹配任何字符,但它只断言匹配是否可能.
  • [a-z]{4} 正好是四个小写字母.
  • $ 线锚的结束.