C# の RegEx を使用して、アドレスを特定の部分に分割し、それらの部分をパターンに基づいて分割して返します。
ユニット番号は、数字と 1 文字の任意の組み合わせ、または数字とスペースと 1 文字の任意の組み合わせとして定義できます。
つまり、2a、328b、32c はすべてユニット番号です。
住所がある場合-たとえば。
unit 32 a Smith Crescent, Johnsonville
ユニット番号の最後のインスタンスまでのすべてを返すことができる正規表現が必要です
ユニット32a
またはユニット番号の最後のインスタンスを含まず、それ以降のすべて
スミス クレセント、ジョンソンビル
別の (非現実的な) 例:
unit 32a Smith 3 d Crescent, Johnsonville
次のいずれかを取得できるようにしたい:
unit 32a Smith 3 d
また
Crescent, Johnsonville
つまり、次の最後のインスタンスで一致させたい:
"[0-9][a-z] " or "[0-9] [a-z] "
私はもう試した:
var beforePattern = "^.*[0-9][a-z] ";
var beforepatternSpace = "^.*[0-9] [a-z] ";
var afterPattern = "[0-9][a-z] (.*)";
var afterPatternSpace = "[0-9] [a-z] (.*)";
ただし、after パターンには一致文字列が含まれます。また、どの前/後一致を使用する必要があるかを判断する方法がわかりません(最長の「前」または最短の「後」が有効でなければならないということは別として)