【发布时间】:2020-12-16 08:49:31
【问题描述】:
我有一个来自家乡(休斯顿)的街道名称字符串,如下所示:
- 'FM 517 W'
- 'FM E 42nd'
- 'N 凯蒂高速公路'
我正在尝试创建一个正则表达式来查找单个字母的基本方向(N、S、E 或 W)并将它们替换为完整的单词(North、South、East 或 West)。
这是我目前写的代码:
single_cardinals = re.compile(r'[NnSsEeWw]+(/s)')
不幸的是,它没有选择上面列出的任何字符串。正则表达式适用于 regexpal.com :(
感谢您的所有帮助! `
【问题讨论】:
-
请显示您尝试使用正则表达式搜索示例列表的代码。包括示例,并显示结果。
-
您的主要字母并不总是后跟空格。也许看看单词边界匹配?此外,+ 是一种非常生硬的工具,因为虽然是的,它允许匹配 NE,但也允许匹配 Ss - 枚举所有可能的基点并不难,是吗?如果可以的话,再完善它。
-
感谢您的帮助,我相信“+”干扰了我的括号搜索。我实际上没有任何 NW、NE 等字符。只有4个基本的。我已将其更新为 3 个问题:找到红衣主教是在末尾、开头还是中间。这是我生成的代码,它可以工作:
end = re.compile(r'( |^)[NnSsEeWw]$')middle = re.compile(r'( )[NnSsEeWw]( ))beginning = re.compile(r'(^)[NnSsEeWw]( ))
标签: python