javascript - 地址的正则表达式
问题描述
对于某些地址,建筑物可能占用多个门号,例如 13 - 15 StreetName。“13 - 15”是我关注的部分。你将如何做一个正则表达式来挑选这部分。
我想像 [0-9] - [0-9] 这样的东西适用于 1 - 3 但如果地址是 12 - 13 [0-9][0-9] - [0-9][0-9]可以工作,但我想确保像 13 - 3 这样的东西不会工作,因为地址不能倒退,而像 99 - 103 这样的东西也可以在数字长度不同的情况下工作。真的很简单,我错过了什么吗?
我仍然是一名学生,不太擅长正则表达式,我只是需要它来处理我正在做的一些 js,并且花了太长时间无处可去。
谢谢你。
解决方案
没有真正的好方法可以做到这一点,因为您正在有效地尝试解析不是常规语言的东西。虽然有几种正则表达式语言允许引用您以前见过的东西,但在这种特定情况下这对您没有帮助。
不过,我们可以轻松地采用蛮力解决方案:)
https://regex101.com/r/4bRmil/1
^(\d{3} - \d{3,}|\d{2} - \d{2,}|\d - \d+)$
5 - 1
正如您所看到的,对于可能无效的情况,它仍然会中断。这是您需要在正则表达式之外检查的内容。
推荐阅读
- python-3.x - opencv python3合并行为怪异
- python - flask render.template 数组结果
- c++ - 如何使用另一个垫子图像替换垫子中的值
- c++ - 假设我有一个功能齐全的程序,并且我想附加一个测试文件,如何在不将 h 文件添加到我的程序中的情况下运行它?
- java - 由于 ThreadPoolExecutor 中的最大池大小,任务被拒绝
- ssl - nginx conf ssl sslabs B 等级
- jquery - 除了我选择播放的视频外,如何暂停所有 html5 视频?
- php - 在 PHP 中的数组中解析矩阵和映射数学函数
- ruby-on-rails - 添加了 mathjax-rails 以在 chrome 中加载 mathml 但无法正常工作
- python - Pygame-两个显示更新同时使用 pygame.time.wait() 函数