2017-03-27 108 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' 
相關問題