Scalaでより大きな文字列から有効なメールを抽出する方法
質問
私のscalaバージョン2.7.7
より大きな文字列からメールアドレスを抽出しようとしています。文字列自体はフォーマットに従いません。私が持っているコード: ジェネラコディセタグプレ
RegexはRegExBuilderを通過しますが、scalaは通過しません。また、正規表現なしでこれを行う別の方法がある場合も問題ありません。ありがとう!
解決
Alan Mooreが指摘したように、大文字と小文字を区別しないように、パターンの先頭に(?i)
を追加する必要があります。また、正規表現を使用すると、文字列全体に直接一致することに注意してください。より大きな文字列内で検索する場合は、findFirstIn()
を呼び出すか、Regexの同様の方法のいずれかを使用できます。
ジェネラコディセタグプレ
他のヒント
大文字と小文字を区別しない検索を実行しようとしているようですが、どこにも指定していません。正規表現の先頭に(?i)
を追加してみてください:
ジェネラコディセタグプレ
まあ、RE以外でそれを行う方法はおそらくかなり厄介です。次のステップは、おそらくコンビネーターパーサーでしょう。多くのランダムな文字列分析コードはさらに一般的であり、ほぼ確実にはるかに苦痛になります。部分的には、適切な戦術は、レコグナイザーがどれだけ完全であるか(そしてどれだけ厳密または寛大である必要があるか)に依存します。例:一般的な形式:Rudolf Reindeer <rudy.caribou@north_pole.rth>
はREで受け入れられません(大文字と小文字の区別が緩和された後でも)。本格的なRFC2822アドレス解析は、REベースのアプローチではかなり困難です。