我想检查一些字符串.这是参数.
好字符串:
go
go2/api/hello
go/api45
Run Code Online (Sandbox Code Playgroud)
坏字符串:
/go (can't begin with a slash)
go//api (can't have a double slash)
go/api% (can't contain non number, letter or slash)
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用RegExr.com,但无济于事.我一直在尝试这个表达式:
^[^\/](([0-9A-Za-z])+(\/)?)+
Run Code Online (Sandbox Code Playgroud)
但它不太有效.
干得好:
^[0-9a-z](\/?[0-9a-z])*\/?$
Run Code Online (Sandbox Code Playgroud)
需要/i当前形式的(不区分大小写的修饰符)。这非常简单,不需要前瞻。
解释:
^ Starts with
[0-9a-z] 1 Alphanumeric character
( Start a repeatable group
\/? Optional /
[0-9a-z] 1 Alphanumeric character
)* Repeat the group zero or more times
\/? Allow for an ending slash
$ String must end
Run Code Online (Sandbox Code Playgroud)
您可以尝试这样的操作(我希望您使用的任何口味都可以超前!):
^(?!.*\/\/)[A-Za-z0-9][A-Za-z0-9\/]*$
Run Code Online (Sandbox Code Playgroud)
有关完整的描述和测试字符串,请参见Regex 101 Demo。