javascript - 正则表达式匹配由空格分隔的多个 IPAddress/域名
问题描述
我需要找到一个正则表达式,我可以在其中解析测试字符串192.168.2.1 www.google.com 10.20.21.199
,例如 where I 192.168.2.1
,www.google.com
并且10.20.21.199
是有效的 IP 地址。
当前正则表达式以匹配由 a 分隔的多个 IPAddress/域名space
rexp = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))(\s(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])))*$/
测试字符串192.168.2.1 www.google.com 10.20.21.199
解决方案
您可以使用以下(简化的)正则表达式来搜索 IP 地址和域名:
/((\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.){3}(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))([ ]|$)|([\w-]+\.)+\w+([ ]|$)/g
正则表达式使用与您的 ip 地址相同的模式,除了它使用'{3}'
量词来获取前三个部分。然后它在最后添加一个域名检查(它们可以包含任意数量的子域)。
推荐阅读
- python - 运行大量 for 循环的更快/更有效的方法
- time - 在活动开始前一小时发送电子邮件和通知
- laravel - Vuejs Axios POST 请求从 Laravel 后端获取 HTTP422 错误
- apostrophe-cms - 联系表格的可能改进
- javascript - 如何将元素设置为水平增长而不是换行?
- unix - 无法安装 yum-config-manager
- windows - 如何配置 docker CLI 以从 Git-Bash 上的 minikube 访问 docker 服务器?
- python - 具有相应二元/序数特征的分类特征的聚合函数
- java - /usr/libexec/java_home 按 JDK 过滤
- django - Django:按两个整数的范围过滤对象