2017-03-27 110 views
-1

我想制作一个正则表达式,其中包含除特定字符串以外的所有内容。匹配除特定字符串以外的所有内容

例如:在pkg/linux-lts-xenial.html

我想要的一切,除了pkg/.html

这将是,linux-lts-xenial

我将使用python这一点。我曾尝试:

[^pkg | .html | /]

甚至负向前看。不过,我似乎在做错事。

如果有人能指出什么,会很乐意。

谢谢

+0

你想要求这些部分,但不包括他们在比赛?或者他们是可选的? – Barmar

+1

你试过'r“pkg /(。+)\。html”'吗? – DyZ

+0

Negative lookahead意味着它只在匹配字符串后面的* not *时匹配。 – Barmar

回答

0

使用积极的lookarounds,而不是负面的。只有在字符串没有被周围环绕的情况下,负面周转才会匹配,但当他们包围它们时,并且只是不包含比赛中的周转时,您想匹配。

(?<=pkg/).*(?=\.html) 
0

删除之前 '/' 任何东西,删除之后什么 '',把这两个之间的任何东西(。*)。

In[4]: s="pkg/linux-lts-xenial.html" 
In[5]: re.sub(r'.*\/(.*)\..*',r'\1',s) 
Out[5]: 'linux-lts-xenial' 
相关问题