Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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正则表达式查找除';之外的所有内容';_Java_Regex - Fatal编程技术网

Java正则表达式查找除';之外的所有内容';

Java正则表达式查找除';之外的所有内容';,java,regex,Java,Regex,我正在尝试编写一个正则表达式,该正则表达式将查找除之外的所有内容。-也就是说,一个只包含”的字符串。应返回false,其他所有内容均应返回true String regex = "(?!(^\\.$)).*"; String test = "."; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(test); System.out.println(matcher.find()); 这应该可以

我正在尝试编写一个正则表达式,该正则表达式将查找除
之外的所有内容。
-也就是说,一个只包含
”的字符串。
应返回
false
,其他所有内容均应返回
true

String regex = "(?!(^\\.$)).*";
String test = ".";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(test);
System.out.println(matcher.find());
这应该可以帮到你。你需要使用
锚定
来确保你没有进行任何部分匹配


这应该可以帮到你。你需要使用
锚定
来确保不进行任何部分匹配。

你真的需要正则表达式吗,只需使用字符串比较:

if (!".".equals(test)) {
    // not equal to a dot
}

您真的需要正则表达式吗?只需使用字符串比较:

if (!".".equals(test)) {
    // not equal to a dot
}

我想这可以完成任务。
[^.]..|[.].+
,我尝试了15种不同的输入,但在尝试查找时它只会显示false

说明:

[^.].
-匹配以无点字符开头的所有字符,然后匹配0个或更多其他字符

[.].+
-匹配以点开头的所有字符,后跟至少一个或多个其他字符


[^.].[.].+
-这两个部分都与运算符“或”

合并,我认为这可以完成工作
[^.]..[.].+
,我尝试了15种不同的输入,在尝试查找时它只会显示false

说明:

[^.].
-匹配以无点字符开头的所有字符,然后匹配0个或更多其他字符

[.].+
-匹配以点开头的所有字符,后跟至少一个或多个其他字符



[^.].|[.].+
-这两部分都与运算符“或”

合并,我看不出您的代码有任何错误。你能具体说明问题出在哪里吗?我想这会解决问题[^\\.$]...*。
foo.bar
?我看不出你的代码有什么问题。你能确切地说明问题是什么吗?我想这将完成任务[^\\\.$]..*。
foo.bar
的结果应该是什么。
?此正则表达式与原始正则表达式几乎相同。@Unihedro这将不会使
OP
的正则表达式的部分匹配make@LuiggiMendoza当
[]内时
你不需要逃避它。@vks谢谢,这似乎对我有用。但是,.*$的结尾不匹配吗?此正则表达式与原始正则表达式几乎相同。@Unihedro这将不会进行部分匹配,而
OP
的正则表达式将进行部分匹配make@LuiggiMendoza当
[]
内时,您不需要逃避它。@vks谢谢,这似乎对我有用。然而,.*$的意思不是在最后匹配任何东西吗?不幸的是,我们正在使用的api只接受一个模式,并使用matcher.find来查找。如果(!matcher.find()),则可以使用
?不幸的是,我们正在使用的api只接受一个模式,并使用matcher.find来查找。如果(!matcher.find()),则可以使用
?是否使用
find
方法对其进行了测试?还有,您的测试用例是什么?您是否尝试匹配
$
?是的,但不幸的是,我发现对于像“…”或“…”这样的输入,此正则表达式失败:(我编辑过,我认为现在它可以工作了!几乎。您忘记了一个特殊情况:空字符串
“”
不是以点或非点开头的。很好!但我不确定这在他的情况下是否是有效的输入,如果是,我们可以在正则表达式末尾添加
^$
以匹配该场景。您是否使用
find
方法进行了测试?您的测试用例是什么?您是否尝试匹配
$
?是的,但不幸的是,我发现了但是对于像“…”或“…”这样的输入,这个正则表达式失败了:(我编辑过,我想现在它可以工作了!差不多了。您忘记了一个特殊情况:空字符串
“”
既不是以点开头,也不是以非点开头。很好!但我不确定这在他的情况下是否是有效的输入,如果是,我们可以在我的正则表达式末尾添加
^$
,以匹配该场景。