我有街道地址,我想用空白字符串替换街道方向。
这是街道E, W, S, N, NE, NW, SE, SW
,我想用空白字符串替换
我已尝试使用此正则表达式/((e|w)|(n|s)(e|w)?)/i
来替换方向,但这会替换正则表达式中存在的所有实例字符。
我想转换街道地址如下 -
"123 Main Street S" => "123 Main Street"
"E 123 Main Street" => "123 Main Street"
"SE 123 Main Street" => "123 Main Street"
"123 Main Street, SW, US" => "123 Main Street, US"
"123 Main Street, s, USA" => "123 Main Street, USA"
答案 0 :(得分:3)
答案 1 :(得分:3)
这是我能想到的最好的:
/[\s,]*\b(?:[EW]|[NS][EW]?)\b/i
正则表达式匹配:
[\s,]*
- 零个或多个空格和逗号\b
- 字边界(领先)(?:[EW]|[NS][EW]?)
- 一个匹配的非捕获分组结构:
[EW]
- E
或W
[NS][EW]?
- N
或S
可选(因此第一种方案中缺少这些内容)后跟E
或{{ 1}}。W
- 尾随字边界 注意使用字符类(那些\b
个东西)来匹配单个字符是最佳做法,因为它们不会导致回溯(因此,对于具有通常的替代方案的组来说,它是首选与字符序列一起使用)。
请参阅IDEONE demo
[...]
答案 2 :(得分:1)