これは、過去数日間私を夢中にさせてきました。レコードの検証とフィールドの抽出を同時に行うことで、一石二鳥です。私の戦略は、正規表現でこれを行うことでした:
private Pattern firstNumber = Pattern.compile("\\d{1}");
これは、「行(レコード)の最初の数字」を意味すると理解しています。これまでのところ、これは最初のフィールドを取得する (そしてそれが数値であることを確認する) のに効果的でしたが、さらに一歩進めたいと思います。
正規表現を微調整して、それが唯一のフィールドである場合にのみ数値が必要であることを指定するにはどうすればよいですか?
つまり、レコードが単に の場合は10
10 を取得したいのですが、レコードが の場合は10 4
何も取得したくありません (これはプロジェクトにとって無効なレコードであるため)。
私は試した:
private Pattern oneNumberOnly = Pattern.compile("\\d{1}\n");
しかし、残念なことに、これ (およびその他の順列) は数字を取得しません。私がここに欠けているものはありますか?