Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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,我有一个声明(st1): 还有另一个语句(st2),我想检查它是否“包含”“cat”和“n#1” 我尝试通过以下方式进行模式检查: if(Pattern.compile(Pattern.quote(st1), Pattern.CASE_INSENSITIVE).matcher(st2).find()) 当cat#n#1时,它在这些情况下起作用。但是如果这个句子是dog,fish,cat#n#1,那么它就不起作用了。我猜是因为这个句子和st1不完全一样 我已经用String.contains()

我有一个声明(st1):

还有另一个语句(st2),我想检查它是否“包含”“cat”和“n#1”

我尝试通过以下方式进行模式检查:

if(Pattern.compile(Pattern.quote(st1), Pattern.CASE_INSENSITIVE).matcher(st2).find())
当cat#n#1时,它在这些情况下起作用。但是如果这个句子是dog,fish,cat#n#1,那么它就不起作用了。我猜是因为这个句子和st1不完全一样

我已经用String.contains()、String.matches()、String.equals()和Pattern方法进行了大量的正则表达式读取和实验,但我无法让它按我所希望的方式工作

例如a

if(st2.toLowerCase().contains("cat") && st2.toLowerCase().contains("n#1")) 
如果正确答案超过1,则返回true。这些错误答案可能是,例如:

dog, fish, bird, eagle, cat, thing#n#4
所以我希望这里能有一点澄清,谢谢:)

编辑:
我需要在开始或结束时添加有关何时完成检查的详细信息。所以我需要找到那个解决方案,然后再试一次,谢谢:)

st2.toLowerCase().contains(n#1)
应该是
st2.toLowerCase().contains(“n#1”)
st2.toLowerCase().contains(“cat”)和&st2.toLowerCase().contains(“n#1”)
,如果这不仅仅是您的打字错误。我也这么认为。但如果这种说法在不止一种情况下是正确的,那就不应该是这样。如果((st2.matches((?i.*)(“cat”))和&st2.matches((?i.*)(“n#1”)*)也给我一个以上的匹配。我通常在这个if语句中有变量,这就是为什么会有一些折叠的东西。不确定最后一个例子中的n#4怎么可能与n#1匹配?我研究了它,我的程序运行一个循环来检查基于用户输入的不同单词。所以我检查的变量可以包含“as”、“cat”、“dog”、“walk”、“a”等词。具体来说,“a”这个词给我带来了麻烦,因为它被用在一个词里面,或者用来定义它是不是一个形容词之类的东西。。所以我需要更好的入住登记首先检查单词的开头(在“#”)和结尾的检查!
if(st2.toLowerCase().contains("cat") && st2.toLowerCase().contains("n#1")) 
dog, fish, bird, eagle, cat, thing#n#4