python - 如何将缩写序号的大小写更改为较低,同时将字符串的其余部分保持在标题大小写中?

标签 python street-address

我正在编写一个 python 脚本,将完整的大写地址转换为首字母大写。我面临的问题是,当我申请 .title()对于像 SOUTH 16TH STREET 这样的字符串,我得到 South 16Th Street。所需的转换将是 South 16th Street,其中序号的缩写为小写。

在 python 中实现此目的的简单方法是什么?我正在考虑使用某种正则表达式。

最佳答案

为了狭义地解决您提出的问题,我认为您可能会发现 string.capwords() 很有用。它将 split -> capitalize -> join 序列封装到一个命令中。

>>> address = "SOUTH 16TH STREET"
>>> capwords(address)
'South 16th Street'

有关 Python 3.4 中该命令的更多信息,请访问...

https://docs.python.org/3.4/library/string.html#string-functions

它也存在于早期版本的 Python 中。

但是,将您的问题扩展到一般性的格式设置,您可能会遇到这种简单方法的麻烦。可能需要更复杂的(例如基于正则表达式的)方法。使用我的语言环境中的示例:

>>> address = "Highway 99N"  # Wanting'Highway 99N'
>>> capwords(address)
'Hwy 99n'

地址解析(和格式化)是一个棘手的问题,因为合法地址的变化量很大,而且人们的书写方式也不同(缩写等)。

pyparsing如果您不喜欢正则表达式方法,模块也可能是一种方法。

关于python - 如何将缩写序号的大小写更改为较低,同时将字符串的其余部分保持在标题大小写中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080260/

相关文章:

检查匹配地址的算法?

android - 验证 Android 中的地址输入

Python 快速检查列表是否是一个数学集合

python - 如何在 Django 中向 UserCreationForm 添加字段?

python - 为什么在类级别使用列表压缩时会引发 NameError?

javascript - 必应 map 。我如何通过纬度和经度获取地址?

google-maps - 免费地址验证/标准化

python - 模拟仪表图像处理 - OpenCV Python

python - 两个按键分组的元组列表中的值求和

javascript - 带有大量 "or' 的正则表达式”