Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,需要一个正则表达式才能在Java中找到以下格式 ABC.CDB.ASD[0].QWE[0] 尝试此操作:\\b\\w{3}+\.\\w{3}+\.\\w{3}\\\[.+?\]+\.\\w\[.+?\]+\\b 但失败了 如果我给出最后一个数组的特定长度,则它是无边界的,如: \\w{3}+\\.\\w{3}+\\.\\w{3}\\[.+?\\]+\\.\\w{3}\\[.+?\\]+ 想要没有长度的边界和最后一句话 有人能帮忙吗?我想你的“+”符号太多了。 正确的regexp应如下所示

需要一个正则表达式才能在Java中找到以下格式

ABC.CDB.ASD[0].QWE[0]
尝试此操作:
\\b\\w{3}+\.\\w{3}+\.\\w{3}\\\[.+?\]+\.\\w\[.+?\]+\\b

但失败了

如果我给出最后一个数组的特定长度,则它是无边界的,如:

  \\w{3}+\\.\\w{3}+\\.\\w{3}\\[.+?\\]+\\.\\w{3}\\[.+?\\]+
想要没有长度的边界和最后一句话

有人能帮忙吗?

我想你的“+”符号太多了。 正确的regexp应如下所示:
\w{3}\.\w{3}\.\w{3}\[\d+\]\.\w{3}\[\d+\]


为什么要在“\w{3}”后面加“+”?

问题是后面的
\b
\b
表示单词和非单词之间的“单词边界”。除非您的目标后面跟一个单词char,否则您将无法获得匹配项。即输入必须如下所示:

ABC.CDB.ASD[0].QWE[0]A
另外,在
]
后面的后面的
+
似乎没有必要。试试这个:

\\w{3}+\\.\\w{3}+\\.\\w{3}\\[.+?\\]\\.\\w\\[.+?\\]
尝试以下方法可能会有所帮助:

Pattern pattern = Pattern.compile("\\w{3}\\.\\w{3}\\.\\w{3}\\[\\d{1}\\]\\.\\w{3}\\[\\d{1}\\]");

只需在最后一个
\\w
后面添加一个
+

\\b\\w{3}+\\.\\w{3}+\\.\\w{3}\\[.+?\\]+\\.\\w+\\[.+?\\]+
//                                    here __^

如果是这样的话,最后就不需要
\\b

我试过这个,它很管用。 如果要将小写字母a-z限制为大写字母,则可以将其删除

([a-zA-Z]{3}.){2}[a-zA-Z]+\[\d+\].[a-zA-Z]+\[\d+\]$

给出完整的Java代码,它准确地显示了您是如何使用这些代码的。例如,如果将所有反斜杠用作Java字符串文字,则它们应加倍。