我有一个像这样的文件,我想匹配一些字符串:
https://site.me/ //matches
https://site.me// //does not match (there is a slash)
https://site.me/deck //does not match (there is not a dot)
https://site.me/hello.php //matches (there is a dot and zero slashes)
https://site.me/deck/hello.php //does not match (there is a slash)
模式应为:https://site.me/
后跟任何斜杠不匹配。接下来是一个点而不是斜线匹配。其次是任何没有点的字符都不匹配。
以下是my try:
https://site.me/((?!/).)*$
答案 0 :(得分:1)
看起来你过度复杂了。
这符合您所描述的要求:
^https://site.me/([^/.]*\.[^/.]*)?$
但是真正的要求(不是你写的那个)可能更复杂。例如,您可能不想要空格,并且您不想要一个点。这是一个可能更好的解决方案
^https://site.me/([^/.\s]+\.[^/.\s]+)?$
答案 1 :(得分:1)
只需匹配网址后的任何可选文件名:
^https://site\.me/([^/]+\.[^/]+)?$
[^/]+
与/
一次或多次匹配任何内容(称之为X
)[^/]+\.[^/]+
匹配X.X
?
使整个文件名部分可选答案 2 :(得分:0)
您可以使用此正则表达式:
^https://site\.me/([^/.]+\.[^/]+)?$
([^/.]+\.[^/]+)?
在https://site.me/
可选后加入。但是如果输入则必须有一个DOT。
答案 3 :(得分:0)
这对我有用
/^https://site\.me/([^\/]+.*?\.php)?$/