1. ホーム
  2. regex

[解決済み] アドレスフィールド検証のための正規表現

2022-03-06 06:52:59

質問

21-big walk wayや21 St.Elizabeth's driveのような住所を表す正規表現を考えているのですが、すべての文字(英数字、スペースダッシュ、フルストップ、アポストロフィ)をどのように組み込んだらよいかわかりません。

"regexp=^[A-Za-z-0-99999999'

解決方法は?

正規表現によるアドレス検証については、この質問の回答を参照してください。 正規表現による住所の一致

問題は、住所の書式があまりに多様で、それに対してコードを書くのが難しいことです。住所を検証しようとする場合、その書式に基づいて有効でないものを見つけることは非常に困難です。 この場合、次のような住所(253 N. Cherry St.)、つまり同じ書式を持つものが返されます。

\d{1,5}\s\w.\s(\b\w*\b\s){1,2}\w*\.

これは、1〜5桁の家屋番号、スペース、文字の後にピリオド(N.やS.を表す)、1〜2語の通り名、最後に略語(st.やrd.など)を指定するものです。

正規表現は標準やプロトコル(あなたが定義したもの)を満たしているかどうかを確認するために使われるので、おそらく上記の住所、特にダッシュのついた最初の住所はあまり標準的ではないので、許可したくないでしょう。

(-?)

を使用すると、ダッシュを使用できますが、ダッシュを要求することはできません。

さらに http://rubular.com/ は、手軽でインタラクティブな正規表現の学習方法です。上のアドレスで試してみてください。