Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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 - Fatal编程技术网

Java Regex仅排除某些字符

Java Regex仅排除某些字符,java,regex,Java,Regex,我有一套这样的url www.abc.com/some-text/ www.xyz.com/some-text/ www.pqr.com/page/2/ 我需要获取URl,除了包含单词页面的URl 我的正则表达式是。*/。?!页面* 它不工作。有人能告诉我这个问题和解决方案吗?使用以下正则表达式。指定^$以确保页面后面没有字符 你的意思是除了你的问题还是期待你的问题 您可以通过前瞻选项忽略包含页面的URL 如果您想选择包含页面的URL,那么 /^(?=.*page).*/ 你为什么要找reg

我有一套这样的url

www.abc.com/some-text/
www.xyz.com/some-text/
www.pqr.com/page/2/
我需要获取URl,除了包含单词页面的URl 我的正则表达式是。*/。?!页面*
它不工作。有人能告诉我这个问题和解决方案吗?

使用以下正则表达式。指定^$以确保页面后面没有字符


你的意思是除了你的问题还是期待你的问题

您可以通过前瞻选项忽略包含页面的URL

如果您想选择包含页面的URL,那么

/^(?=.*page).*/

你为什么要找regex?这可以使用String.containsString来完成

您可以使用正则表达式:

(^(?:.(?!\bpage\b))+$)
检查

代码:

String regex="(^(?:.(?!\\bpage\\b))+$)";
String lines[]={
        "www.abc.com/some-text/",
        "www.xyz.com/some-text/",
        "www.pqr.com/page/2/"   
};
for(String line:lines){
    if(line.matches(regex)){
        System.out.println(line);
    }
}
输出:

解释

使用URI:


这允许只在路径组件中搜索页面,如果在主机名/查询字符串/片段部分中出现,则不会被愚弄。

如果页面出现在路径以外的其他位置,该怎么办?例如,foo.bar/baz?page=4?无需使用Stringmatches指定“^”和$anchors,它已经在整个输入字符串上匹配了。不过,这并没有使正则表达式出错,只是有点多余:@sp00m,你是对的。谢谢你的评论。我将把答案留给其他不涉及String.matches的用例。
/^(?=.*page).*/
String string ="www.pqr.com/page/2/";
if(string.contains("page")){
    //true
}
(^(?:.(?!\bpage\b))+$)
String regex="(^(?:.(?!\\bpage\\b))+$)";
String lines[]={
        "www.abc.com/some-text/",
        "www.xyz.com/some-text/",
        "www.pqr.com/page/2/"   
};
for(String line:lines){
    if(line.matches(regex)){
        System.out.println(line);
    }
}
www.abc.com/some-text/
www.xyz.com/some-text/
public boolean containsPage(final String input)
{
    return URI.create(input).getPath().contains("page");
}