我有以下模式: www.domain.com:8051/(. * )/(.*)
以及以下两个网址:
www.domain.com:8051/first/second
www.domain.com:8051/first/second/third/fourth
两个网址都匹配。但我只想匹配第一个。我必须怎么做才能将“/”排除为要匹配的字符?
谢谢,琼。
为了排除字符,您应该[^<characters to exclude>]
在您的情况下使用:
www.domain.com:8051/([^/]*)/([^/]*)
当您需要使用不情愿的量词时,您正在使用贪婪的正则表达式量词。
而不是.*
,使用.*?
. 当我第一次学习如何使用正则表达式时,我发现这个备忘单非常有用。
www.domain.com:8051/(.*?)/(.*?)
编辑:在弄乱了模式之后,我无法想出一个有效的模式,但你可以检查是否找到了上述模式,而以下模式不是:www.domain.com:8051/(.*?)/(.*?)/$
如果这些是唯一的模式,为什么不在“/”上拆分并检查长度?
您仍然可以访问这些组件。