Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我需要做的是检查一个字符串,这就是我到目前为止所做的 System.out.print("Please enter a string of 1's and 0s :"); numLine = input.next(); if (numLine.matches("^101$")) { System.out.print("A is true"); } else if (numLine.matches("^\\d[01]+101$ ")){ System.out.print("B i

我需要做的是检查一个字符串,这就是我到目前为止所做的

System.out.print("Please enter a string of 1's and 0s :");
numLine = input.next();

if (numLine.matches("^101$")) {
    System.out.print("A is true");
} else if (numLine.matches("^\\d[01]+101$ ")){
    System.out.print("B is true");
} else {
    System.out.println("no");  
}
代码的第一部分^101$工作并打印出A是真的 对于B,我试图做的是只接受1和0,如果以101结尾,则返回 我希望C在开始时做101,并接受尽可能多的1和0 还有一个D,它在任何地方都有101个,即使是111000101000或其他什么


我的杀手锏是(“^101$”)语法,我可以在这方面使用帮助,你不需要
^
$
匹配(正如我在评论中所说)。我是这样看的:

B:
“[01]+101”

C:
“101[01]+”

D:
“[01]*101[01]*”


回想一下
X+
表示
X
一次或多次,而
X*
表示
X
零次或多次


<>也(对于<强> a /强>),如果您想“匹配”仅<代码>“101”<代码>,您可能需要简单地考虑使用<代码>等于/>代码>,即<代码> NoMLIN。等于(“101”)< /代码> .< /P> < P>您想要的四个正则表达式非常相似:

要精确匹配“101”(A),如您所见,请使用
101
(如注释中所述,您不需要使用
^
$

要匹配以“101”(B)结尾的任何内容,请使用
[01]*101

要匹配以“101”(C)开头的任何内容,请使用
101[01]*

要匹配任何包含“101”(D)的内容,请使用
[01]*101[01]*


在所有情况下,
[01]*
表示集合{0,1}中任何字符的0个或多个实例,所以每一个都会查找
101
,剩下的字符串只填写
0
1

我不确定您到底想做什么,但我理解您想要regex做什么,所以我将简单地发布它

A-
^101$
101
作为整个字符串进行匹配

B-
^101
在字符串开头匹配
101
。在后面添加
[10]*
,以包括
0
1
之后。
^101[10]*

C-
101$
匹配字符串末尾的
101
。在开头添加
[10]*^
以包括前面的
0
1
[10]*101$


D-
101
匹配
101
任何地方。

你不需要
^
$
匹配
。第二个正则表达式中的
\D
的意思是什么?最初的想法是能够获取字符串,这是设置好的,但是如果字符串是“101”,如果它是“0100101”,它将返回A它将返回B,“101001001”将得到C,“11100001000111”将返回D。同时它拒绝除1和0以外的所有内容。我的意思是,您在开始处放置的第二个正则表达式
\\D
。它匹配任何数字的单个实例。这似乎不是您要问的问题,因此我想知道为什么您在其中使用它。在这种情况下,是我试图找出一张表中我说了什么在正则表达式中找到