正则表达式从地址字符串中获取数据

Regex to grab the data from an address string

我的地址字符串如下所示:

#12 1320 Water Street|Kelowna, British Columbia V1Y9P4

我需要正则表达式来获取这些值:

#12
1320
Water street

我试过下一个:

([\w\d]+)\s(.+?)\s(.+?)\|

但我也可以没有第一个值(#12)。 例如:

1320 Water Street|Kelowna, British Columbia V1Y9P4

现在我的正则表达式不起作用了。

是否可以用一个正则表达式来获取我在两种情况下都需要的数据(有第一个值\没有第一个值)?

您可以像这样使用正则表达式:

^(#\d+ )?(\w+) ([^|]+)

Working demo