【发布时间】:2019-04-09 02:50:21
【问题描述】:
我正在做一个街道名称正则表达式并想匹配单词:
(\bNORTH|\bSOUTH|\bEAST|\bWEST)
如果它们出现在单词之后
(\bSTREET|\bAVENUE)
...加上其他 10 个街道名称(如 LANE、DRIVE 等,我不会在这里包括)
如果它们出现在街道名称之前,我不想匹配它们,因为我想像这样匹配整个街道名称:
BOB STREET - Matches "BOB STREET"
BOB STREET WEST - Matches "BOB STREET WEST"
WEST BOB STREET - *** Matches "WEST BOB STREET" ***
NORTH BOB STREET WEST - *** Matches "NORTH BOB STREET WEST" ***
目前,我有一个非常长的正则表达式,看起来像这样:
[0-9].*?((\bSTREET (\bWEST|\bEAST|\bNORTH|\bSOUTH)|\bSTREET)|(\bAVENUE (\bWEST|\bEAST|\bNORTH|\bSOUTH)|\bAVENUE))
这变得非常笨拙,因为我必须为 15 多个街道名称中的每一个复制一次 WEST、EAST、NORTH、SOUTH。
有没有办法缩短它以匹配街道名称和指南针方向 - 仅当它们出现在街道名称之后 - 而不必在每个街道名称之后复制指南针方向正则表达式?
【问题讨论】:
标签: regex