我想制作一个正则表达式,其中包含除特定字符串以外的所有内容。匹配除特定字符串以外的所有内容
例如:在pkg/linux-lts-xenial.html
我想要的一切,除了pkg/
和.html
这将是,linux-lts-xenial
我将使用python这一点。我曾尝试:
[^pkg | .html | /]
甚至负向前看。不过,我似乎在做错事。
如果有人能指出什么,会很乐意。
谢谢
我想制作一个正则表达式,其中包含除特定字符串以外的所有内容。匹配除特定字符串以外的所有内容
例如:在pkg/linux-lts-xenial.html
我想要的一切,除了pkg/
和.html
这将是,linux-lts-xenial
我将使用python这一点。我曾尝试:
[^pkg | .html | /]
甚至负向前看。不过,我似乎在做错事。
如果有人能指出什么,会很乐意。
谢谢
使用积极的lookarounds,而不是负面的。只有在字符串没有被周围环绕的情况下,负面周转才会匹配,但当他们包围它们时是,并且只是不包含比赛中的周转时,您想匹配。
(?<=pkg/).*(?=\.html)
删除之前 '/' 任何东西,删除之后什么 '',把这两个之间的任何东西(。*)。
In[4]: s="pkg/linux-lts-xenial.html"
In[5]: re.sub(r'.*\/(.*)\..*',r'\1',s)
Out[5]: 'linux-lts-xenial'
你想要求这些部分,但不包括他们在比赛?或者他们是可选的? – Barmar
你试过'r“pkg /(。+)\。html”'吗? – DyZ
Negative lookahead意味着它只在匹配字符串后面的* not *时匹配。 – Barmar