假设我们有以下一系列URI:
答:/ user / a / b / c
B:/ user / a / b / f / d
C:/ user / a / b / e
D:/ user / a / k / r
我需要在python中使用一个匹配除规则B之外的所有规则的正则表达式。因此它应匹配以 / user / a 开头的所有URI,但它应该排除以 d结尾的URI
提前多多感谢!
更新:路径的片段不是单个字符,而是整个单词。例如,d可以是“发送”。
答案 0 :(得分:3)
如下:
^/user/a/.*[^d]$
将其读作“以/ user / a /开头,然后是任意数量的其他字符,然后是最终字符,不得为d。
答案 1 :(得分:1)
试试这个:
(?!.*\/d)\/user\/a.*
(?!。* / d) - >负向前看断言,基本上说它不以/ d结束
教导男人钓鱼:
输入测试字符串并使用正则表达式:)
答案 2 :(得分:1)
基于Jiman的答案,我的问题的确切解决方案如下:
(?!.*d)\/user/a/.*
请注意,d和a对应于整个单词。因此,一个例子是:
(?!.*send)\/user/myapp/.*
答案 3 :(得分:0)
可能只是更清楚地使用:
a = '/user/a/b/f/d'
b = s.strip('/').split('/')
if b[:2] == ['user', 'a'] and b[-1] != 'd':
pass # whatever
或者,如果你没有按/
分割,那么:
if a.startswith('/user/a') and not a.endswith('d'):
pass # whatever