我正在使用 C# 的 RegEx 将地址分解为特定部分,然后返回这些部分,并根据模式进行拆分。
单位编号可以定义为数字和单个字母的任意组合,或数字、空格和单个字母的任意组合
即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] (.*)";
然而,后面的模式包括匹配字符串。另外,我不确定如何确定应该使用哪个之前/之后的匹配(除了说最长的“之前”或最短的“之后”必须是有效的)