Javaを使用してファイルを解析しようとしています。ドキュメントで年齢を探しています。これまでに見た例は次のとおりです。
49歳
31歳
, 26,
、45、
30代、
30代後半、
基本的に、ファイル内のすべての年齢層を抽出する必要があります。これらのパラメーターにヒットする正しい正規表現が何であるかはわかりません。「30 代」のような数について、「40 代」、「50 代」などのすべての数列を行う最善の方法は何ですか?
最後の入力を除くすべての入力例では、次のパターンのようなものを使用して年齢を抽出するのは簡単です。
Pattern pattern = Pattern.compile("[^\\d]*(\\d+)[^\\d]*");
Matcher matcher = pattern.matcher("30s"); // 49-years-old, 31 years old
if (matcher.matches()) {
System.out.println(matcher.group(1));
}
しかし、時代が言葉で書かれている場合、簡単な解決策はなく、おそらくあなたのパターン(またはこれを抽出するために行うアルゴリズム)はありません。人々はあなたが適応しなければならないさまざまなスタイルで彼らの年齢を入力するかもしれないので、時間とともに進化しなければなりません。
スタンフォードのCSの友人からの質問に対する答えを見つけました。
生成できるのに、なぜすべての正規表現コードを手動で把握するのですか?
http://txt2re.com/index-java.php3
このWebサイトでは、抽出しようとしている情報を非常に簡単に選択できます。文字列から抽出したいもののすべての可能性を見つけることに成功し、必要な部分をクリックするだけでした。
このツールは、正規表現について私が見つけた他のすべてのものを打ち負かしました。
この場合、このケースでは正規表現を使用しません。入力をスキャンする関数を作成したいと思います。その方が頼りになると思います。正規表現は、時々少し面倒になることがあります。