匹配www之间的模式。和.com部分网址

时间:2015-12-16 09:06:58

标签: regex python-2.7

我正在写一个程序,它给了我在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)行中的错误是什么?

2 个答案:

答案 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有关正则表达式的逐步说明。