完全修飾されたクラス名からクラス名以外のすべてをクリーンアップしようとしています。だから、私は.....のようなものを持っているかもしれません
"class gqlMain.Node"
...そして私は最終的に...になりたいです。
"Node"
...私のパターンはかなり確信しています...
"*.[\\.][^\\.]*"
..正しいです。上記のように実行してテストする場合は...
myMatcherObject.matches()
...常にtrueを返しますが、グループ化を追加しようとすると...
"(.*[\\.])([^\\.]*)"
...一致が見つからないというエラーが常に発生します。何が起こっているのかわからない。
追加した:
迅速な対応に感謝します。ええ、私は本当にこれを取得しません。私の正確なコードは...
public String toString() {
Pattern packagePatt = Pattern.compile("(.*[\\.])([^\\.]*)");
//
System.out.println(this.compClass.getName().toString());
Matcher packageMatch = packagePatt.matcher(this.compClass.getName().toString());
//
System.out.println(packageMatch.group(2));
return packageMatch.group(2);
}
たとえば、最初のprintステートメントは「gqlMain.Node」のような文字列を生成します(toString()が冗長であることはわかっているので、苛立ちから追加しました)。2番目のprintステートメントは、returnステートメントと同様にエラーを生成します。デバッガーを使用すると、Matcherオブジェクトのグループリストがすべてのインデックスで空のままであることがわかります。しかし、私が挿入した場合...
if (packageMatcher.matches()) {
// print true
}
...私は常に'true'を取得します。これは本当に意味がありません。