所以我是正则表达式的新手并试图编写一个与此匹配的正则表达式:
example.com/some-url-text-here/
但不是
example.com/some-url-text/but-also-more-than-two-slashes/
example.com/text-here/one-slash-too-many/two-slashes-too-many/
基本上,我希望它匹配一个string-separated-by-dashes
包含不超过两个/
所包围的网址。
我尝试了几个不同的事情,例如negative look around或not ....我尝试过的最后一件事是:
example\.com/[a-zA-z]*-*/
[a-zA-z]*-*
与text-here
匹配,但我无法匹配/text-here/
..在这种情况下我做错了什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果你有regexen的问题,你可以简单地split "/"
左右,确保元素不为空(除了可能是最后一个)并且不超过3元件。
您可以使用-1
作为参数,以确保最后一个元素被拆分:
>>> "some/url//".split("/", -1)
['some', 'url', '', '']
答案 2 :(得分:1)
你的正则表达式不起作用的原因是因为你的顺序。
example\.com/[a-zA-z]*-*/
这是寻找文本UPPER和更低和那些连字符。只需在括号中包含连字符,如下所示:
example\.com/[a-zA-z-]*/