我正在写一个程序,它给了我在www之间的网页地址中只包含辅音的字母。和.com。 例如,如果我输入www.google.com,它应该返回'ggl',但这不会发生。
import re
x=int(raw_input())
for i in range(x):
inp1=raw_input()
y=re.findall('^www\.[^(aeiou)]+\.com',inp1)
print y
inp2=y[0]
print inp2
那么y=re.findall('^www\.[^aeiou]+\.com',inp1)
行中的错误是什么?
答案 0 :(得分:1)
正则表达式无法做到这一点。要在查看前面的www.
时查找所有匹配项,您需要可变宽度的lookbehinds,这是非法的。
如果他们工作了,但他们没有,那么下面的正则表达式就是你想要的:
y=re.findall('(?<=^www\..*)[^aeiou]+(?=.*?\.com)',inp1)
但答案很简单,就是你不能用正则表达式来做你想做的事。
答案 1 :(得分:1)
这可以通过正则表达式完成,并且您不需要可变宽度的lookbehind来实现它。您可以使用否定前瞻:
>>> s = 'www.google.com'
>>> re.findall('(?!w{1,3}\.)([^aeiou\W])(?=.*\.com)', s)
['g', 'g', 'l']
Click here有关正则表达式的逐步说明。