1

我想在地址字符串中查找并替换门牌号。地址字符串如下

  1. 34 号房屋 45 号街道 防御路
  2. 房子 #334 Street #323 Bangla 133

所以,我想找到用字符串 House no 替换不同变体的 House number。

门牌号的不同变化如下:

  1. 房屋编号
  2. 何。不
  3. H#
  4. 房子 #
  5. 何#
  6. 何不。

我尝试使用以下正则表达式来实现这一点,但对于大多数门牌号字符串变体来说它都失败了。

string hno_regex =  ((i?)h.[^#]*.);

您能否建议一个正则表达式来查找门牌号字符串的变化..?

4

2 回答 2

2

我建议这样做:

hno_regex = @"(?i)\bH(?:o(?:use\b|\.)?)?\s*(?:#|\bno\b\.?)";

解释:

(?i)   # case-insensitive mode on
\b     # Match a word boundary (start of word)
H      # Match H
(?:    # Try to match...
 o     # an o
 (?:   # followed by...
  use  # "use"
  \b   # (end of word)
 |     # or
  \.   # a dot.
 )?    # Make that part of the match (use|.) optional
)?     # as well as the previous part (o).
\s*    # Match optional whitespace
(?:    # Try to match
 [#]   # a hash mark
|      # or
 \b    # (start of word)
 no    # "no"
 \b    # (end of word)
 \.?   # optional dot.
)      # (End of alternation)
于 2012-12-30T06:03:25.903 回答
0

你可以直接做。只需将所有匹配项放在一个组中即可。

regex="\bH(ouse 编号|o. No|#|ouse #|o #|o no.)"

房子号何。没有H#House#Ho#Ho没有。

于 2012-12-30T13:50:33.343 回答