Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Regex问题_Java_Regex_Url - Fatal编程技术网

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/[^/]*/?$";