Java-Regex问题
可能重复:Java-Regex问题,java,regex,url,Java,Regex,Url,可能重复: 我有以下类型的URL列表: http://www.example.com/pk/etc http://www.example.com/pk/etc/ http://www.example.com/pk/etc/etc 其中,etc可以是任何内容 因此,我只想搜索那些包含www.example.com/pk/etc或www.example.com/pk/etc/的URL 注:这是为所有认为这是一个重复问题的人准备的——请仔细阅读这两个问题,然后再将此问题标记为重复问题。即使在阅读
我有以下类型的URL列表:
http://www.example.com/pk/etc
http://www.example.com/pk/etc/
http://www.example.com/pk/etc/etc
etc
可以是任何内容
因此,我只想搜索那些包含www.example.com/pk/etc
或www.example.com/pk/etc/
的URL
注:这是为所有认为这是一个重复问题的人准备的——请仔细阅读这两个问题,然后再将此问题标记为重复问题。即使在阅读之后,你也无法理解这两个问题是不同的,那么请不要将其标记为重复,因为我无法再详细地告诉你区别
您的问题尚未完全定义,因此我无法给出确切答案,但这应该是您可以使用的一个开始: ^[^:]+://[^/]+\.com/pk/[^/]+/?$ 这些字符串不匹配: http://www.example.com/pk// http://www.example.co.uk/pk/ca http://www.example.com/pk http://www.example.com/pk/ http://www.example.com/anthingcangoeshere/pk http://www.example.com/pkisnotnecessaryhere http://www.example.com/pk/ca/sf http://www.example.com/pk// http://www.example.co.uk/pk/ca http://www.example.com/pk http://www.example.com/pk/ http://www.example.com/anthingcangoeshere/pk http://www.example.com/pkisnotnecessaryhere http://www.example.com/pk/ca/sf 我想这是不被接受的。如果这也应该被接受,那么使用
String pattern = "http://www.example.com/pk/[^/]*/?$";
因此,我只想搜索那些包含www.example.com/pk/etc
或www.example.com/pk/etc/
的URL
更新
我认为这会奏效:
https?://.\\.?[A-Za-z0-9]+\\.com/pk/etc/?[^.]
但是您提供的列表中的每一项都包含您正在搜索的内容。为什么您又问同样的问题?你知道,如果一个字符串包含
www.example.com/pk/etc/
,它也包含www.example.com/pk/etc
,因为这是www.example.com/pk/etc/
@Cletus的前缀,请仔细看问题。。。两者都不同。questions@Yatendra歌尔:那么请告诉我们区别。也许你应该做一个比正则表达式更系统的方法。Java有一个优秀的URI类,可以用来解析和处理URI。@Bytecode+
表示“一个或多个”或“零个或多个”@Yatendra:+
表示“一个或多个”@Bytecode。。。我想它也会匹配。。。。如果这是真的,那么这是不可接受的。。。url在pk
之后必须只有一个/…/
或/…
段,然后应在?:“^/]+/?$”之后添加$。请参阅更新的答案。请注意,在正则表达式中,
表示任何字符。如果您指的是文字点,则必须将其转义。@标记“是”,您是对的,在pk/
之后必须至少有一个字符。在pk
之后应该只有一个段/…
或/…/
,并且不能超过一个。。。所以一定不能匹配
String pattern = "http://www.example.com/pk/[^/]+/?$";
String pattern = "http://www.example.com/pk/[^/]*/?$";