Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,嗨,我必须匹配下面这样的图案 {digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A}|{digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A}|{digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A} 我正在使用以下代码- String accMatrixPattern = "\\d{1,1}|[A]:\\d{1,1}|[A]:\\d{1,1}|[A]|[A]:

嗨,我必须匹配下面这样的图案

{digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A}|{digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A}|{digit 0-1 or A}:{digit 0-1 or A}:{digit 0-1 or A}
我正在使用以下代码-

String accMatrixPattern = "\\d{1,1}|[A]:\\d{1,1}|[A]:\\d{1,1}|[A]|[A]:\\d{1,1}|[A]"; 
String accMatrx = "1:A:1|0:1:1|0:1:1";
如果我只使用“
\\d{1,1}|[A]
”; 它正在发挥作用,但没有结合起来

请建议如何匹配正则表达式


谢谢

如果您试图在每个位置仅匹配0、1或A,您可以使用:

String accMatrixPattern = "[01A]:[01A]:[01A]\\|[01A]:[01A]:[01A]\\|[01A]:[01A]:[01A]";

如果要获取值,-1,0,1,A:

String accMatrixPattern = "([01A]|-1):([01A]|-1):([01A]|-1)\\|([01A]|-1):([01A]|-1):([01A]|-1)\\|([01A]|-1):([01A]|-1):([01A]|-1)";
这将匹配一个字符(0或1或字母a),后跟冒号,后跟另一个字符(如第一个字符),后跟冒号,后跟第三个字符(如第一个字符)


然后它需要一个|字符(注意它是转义的),后面跟着同样的东西,但是两次。

问题是整个字符串上的
,因此,添加括号以指示分组方式,您的正则表达式看起来像这样:

"(\\d{1,1})|([A]:\\d{1,1})|([A]:\\d{1,1})|([A])|([A]:\\d{1,1})|([A])"
您现在可以使用一些
{}
来取消冗余

"(\\d|A):(\\d|A)(:(\\d|A)\|(\\d|A):(\\d|A)){2}"
仅对于数字
0-1
,使用
[01A]
(如其他答案所示)可能更好

"[01A]:[01A](:[01A]\|[01A]:[01A]){2}"

?:要指定这是一个非捕获组

非常感谢。它正在工作。我会在9分钟后接受答案:)@BTW如果我想采取-1对1的范围,那么如何做?谢谢你的回答。是的,我得到了,但无法放入括号;谢谢你的解释。
"(\\d|A):(\\d|A)(:(\\d|A)\|(\\d|A):(\\d|A)){2}"
"[01A]:[01A](:[01A]\|[01A]:[01A]){2}"
[01A]:[01A]:[01A](?:\\|[01A]:[01A]:[01A]){2}