Regex解析地址房屋和公寓号码

本文关键字:公寓 号码 地址 Regex | 更新日期: 2023-09-27 17:58:47

当前我正在使用此regex

private string DigExp = @"[^'d]";

那样:

Regex.Match(Address, DigExp, "")

而字符串地址通常包含字符和数字。。假设地址是"ipsum-lorem 30/9"或"ipsum-lorem 309"我仍然得到309作为两个例子的结果。我需要两个正则表达式来解决这个问题,一个匹配第一个数字,直到/if存在,另一个匹配第二个,第二个应该在字符串末尾/之后,可能根本不存在。

我需要用/将地址号码分为正则表达式组

你能指导我实现我的目标吗?谢谢

Regex解析地址房屋和公寓号码

通过使用组,您可以使用以下regex来隔离地址字符串的不同部分。以下内容将地址分隔为所有单词,以及可选斜线前后的数字:

((?:[a-zA-Z]+'s)*)(['d]+)(?:(?:'/)('d+))?

例如:"ipsum lorem 30/9"变为:

匹配#0长度:16范围:1-16

ipsum lorem 30/9

第1组长度:12

ipsum lorem

第2组长度:2

30

第3组长度:1

9

注意:下面的正则表达式增加了在第四组中的数字后面匹配单词的能力:

((?:[a-zA-Z]+''s))([''d]+)(?:(?:/)(''d+))?(?:''s[a-zA-Z]+)

您可以很容易地将其分为两组:

('d+)/?('d*)

尝试使用以下模式:

(['d'/'d]+|'d+)  

尝试:[a-zA-Z's]*(['d]*)'/?(['d]*)?。这将得到第一组中的第一部分,以及第二组中/之后的任何部分。