Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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中的正则表达式,如果任何字符不是“quot;N‘&引用;E‘&引用;W"&引用;S";找到_Java_Regex - Fatal编程技术网

Java中的正则表达式,如果任何字符不是“quot;N‘&引用;E‘&引用;W"&引用;S";找到

Java中的正则表达式,如果任何字符不是“quot;N‘&引用;E‘&引用;W"&引用;S";找到,java,regex,Java,Regex,我已经为正则表达式编写了一个Java程序。 我在寻找正则表达式,如果在文本中找到除“N”、“E”、“W”、“S”以外的任何字符,它实际上会返回false。 我使用了此模式。在我的程序中匹配(“[^NWES]”,str)它不起作用。您需要在正则表达式中使用量词:- return Pattern.matches("[NWES]+", str); 您需要在正则表达式中使用量词:- return Pattern.matches("[NWES]+", str); 看起来你在寻找与指南针的有效点相匹配的

我已经为正则表达式编写了一个Java程序。 我在寻找正则表达式,如果在文本中找到除“N”、“E”、“W”、“S”以外的任何字符,它实际上会返回false。
我使用了此模式。在我的程序中匹配(“[^NWES]”,str)它不起作用。

您需要在正则表达式中使用量词:-

return Pattern.matches("[NWES]+", str);

您需要在正则表达式中使用量词:-

return Pattern.matches("[NWES]+", str);

看起来你在寻找与指南针的有效点相匹配的东西。如果是这样的话,这并不像你的问题所建议的那样简单

有效的罗盘点由
NSEW
sure组成,但:

  • 最多有两个不同的字母
  • N
    S
    不会同时出现
  • E
    W
    不会同时出现
  • 如果
    E
    W
    出现两次,则它们是第一个和最后一个,中间是
    N
    S
  • 对于两个字母点,N
    S
    出现在
    E
    W之前`

现在,这可以表示为正则表达式,但在这一点上,将指南针点放在
枚举中,并用于验证输入(如果输入无效,则会引发IllegalArgumentException)

似乎您正在寻找匹配指南针有效点的方法。如果是这样的话,这并不像你的问题所建议的那样简单

有效的罗盘点由
NSEW
sure组成,但:

  • 最多有两个不同的字母
  • N
    S
    不会同时出现
  • E
    W
    不会同时出现
  • 如果
    E
    W
    出现两次,则它们是第一个和最后一个,中间是
    N
    S
  • 对于两个字母点,N
    S
    出现在
    E
    W之前`

现在,这可以表示为正则表达式,但在这一点上,将指南针点放在
枚举中,并用于验证输入(如果输入无效,将抛出IllegalArgumentException)

只需添加一个量词即可<代码>+
*
,由您选择。使用
str.matches(regex)
,它更简短、更惯用。“它没有工作”(原文如此)不是一个好的bug报告。它到底是怎么不起作用的?只需添加一个量词<代码>+
*
,由您选择。使用
str.matches(regex)
,它更简短、更惯用。“它没有工作”(原文如此)不是一个好的bug报告。到底是怎么回事?嗯。。。我想你需要一个
在前面;)@m、 布特纳。。是 啊我没有注意到它应该返回false。仔细想想,我猜双重否定实际上有点违反直觉。也许最好只搜索
[NWES]+
@m.buettner。是 啊在问题中迷失了一会儿。@m.buettner在这种情况下,您需要锚定
^
$
。嗯。。。我想你需要一个
在前面;)@m、 布特纳。。是 啊我没有注意到它应该返回false。仔细想想,我猜双重否定实际上有点违反直觉。也许最好只搜索
[NWES]+
@m.buettner。是 啊在问题中迷失了一会儿。@m.buettner在这种情况下,您需要锚定
^
$