如何确定url是否以该格式创建?
1. http(s)://XXX.XX --> OK
2. http(s)://XXX.XX/ --> OK
3. http(s)://XXX.XX/test --> OK
4. http(s)://XXX.XX/test/ --> OK
5. http(s)://XXX.XX/sdf.sdfsf --> Fail
6. http(s)://XXX.XX/sdf.sdfsf/ --> Ok
7. http(s)://XXX.XX/test/sdf.sdfsf --> Fail
8. http(s)://XXX.XX/test.test/test/sdf.sdfsf --> Fail
现在我已经发现regex:
(?:[^'/]*+)$(?<='..)
但有两个问题:
- 我认为只有当路径中有一个文件时,这个验证(对于laravel验证)才有效,但我需要完全相反的方法
- 如果扩展名为file.x而不是file.x{x+},则仅查找文件
有什么建议可以更正正则表达式吗?
更新:
这里是单元测试(https://regex101.com/r/bV1nS3/1)带有:
(?:.*'/)(?:[^.]+$)
这个对我有用:
(?:.*'/)(?:[^.]+$)
你可以在这里找到你的例子。
这对我有效
.*'/+(?:(?:XXX'.XX'/*)|[^'.]+)?$
在这里,我取了最后一个"/"之后的文本,并检查它是否有点。若它有点,那个么它必须是文件名else目录。此外,如果您更改正则表达式,则必须在其中提及XXX.XX。