Java 特定格式的正则表达式
需要一个正则表达式才能在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应如下所示
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字符串文字,则它们应加倍。