如果最多出现两次点和破折号,则正则表达式匹配

2023-11-26

我需要一个正则表达式来匹配最多包含 2 个破折号和 2 个点的任何字符串。 不一定要有破折号或点,但如果有 3 个以上破折号or3 个点或什至同时包含 3 个以上破折号和 3 个以上点,则正则表达式不得与字符串匹配。

旨在用于 PHP。
我知道使用 PHP 函数的简单替代方案,但它要在只允许使用正则表达式进行过滤的大型系统中使用。

将匹配的示例字符串:
你好世界.com

不匹配的示例字符串:
www.hello-world.easy.comor你好世界-i-win.com


这符合您的期望吗?

(?!^.*?([.-]).*\1.*\1.*$)^.*$

See it 在 Regexr 上

(?!^.*?([.-]).*\1.*\1.*$)是一个消极的前瞻。与第一个相符.-将其放入捕获组 1 中,然后使用反向引用检查是否还有两个捕获组\1。一旦找到三个,表达式就不再匹配。

^.*$如果否定前瞻未匹配,则匹配从开始到结束的所有内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果最多出现两次点和破折号,则正则表达式匹配 的相关文章

随机推荐

  • 从Python文件中读取数据块

    我是 python 新手 正在尝试从文件中读取数据 块 该文件的写法类似于 Some comment 4 cols of data x vx vy vz nsp nskip 2 10 0 0 0000000 1 4 0 5056E 03 0
  • 使用 FFMPEG 进行网络音频 api 的直播

    我正在尝试使用 node js ffmpeg 将音频流式传输到仅使用 Web 音频 api 在 LAN 中连接的浏览器 不使用 element 因为它添加了自己的 8 到 10 秒的缓冲区 并且我希望获得尽可能高的延迟 最多大约 1 到 2
  • 使用 TSQL,我可以将 CHAR(1) 列加一并在没有 CASE 语句的情况下在 LEFT OUTER JOIN 中使用它吗?

    这个问题和我的很相似最后一个问题 只不过这次我使用的是字母而不是 6 位整数 我想找到不按顺序排列的 字母 假设我有以下数据 id Date Letter 01 5 1 2009 X 02 5 1 2009 Y 03 5 1 2009 Z
  • 使用自签名证书和 CA 的 Android SSL HTTP 请求

    我有一个 Android 应用程序连接到我们托管的 SSL Web 服务 Web 服务器是 apache 拥有我们创建的自己的 CA 和自签名 SSL 证书 我已将我们的 CA 证书导入到 Android 平板电脑上的 安全性 中的 用户可
  • 将正态分布拟合到一维数据

    我有一个一维数组 我可以计算该样本的 平均值 和 标准差 并绘制 正态分布 但我有一个问题 我想在同一张图中绘制数据和正态分布 我不知道如何绘制数据和正态分布 关于 scipy stats 中的高斯概率密度函数 有什么想法吗 s np st
  • 防止锚定行为

    当我想阻止我使用的锚标记的默认行为时 a href link a 哪个是最有效的解决方案 优雅降级解决方案的示例 a href no script html link a Demo http jsfiddle net karim79 Pkg
  • 如何让facebook评论框宽度为100%?

    我正在使用此代码将 Facebook 评论框添加到我的页面
  • python zeep:发送未转义的 xml 作为内容

    我认为我想做的事情很像zeep 仓库中的 github 问题 但遗憾的是 目前还没有对此问题做出回应 我研究了肥皂水 安装并尝试过 甚至没有发送参数来工作 并认为 zeep 似乎维护得更好 编辑1 当然我不是在谈论this 您可以使用插件将
  • Python 会话 SAMESITE=None 未设置

    我在使用 chrome 和 SameSite 时遇到问题 我在 Shopify iframe 中提供网页 当使用 Flask login 设置会话时 chrome 告诉我 与跨站点资源关联的 cookie URL 设置时没有SameSite
  • create-react-app 保留了 ES5 之后的 JavaScript

    我正在使用 create react app 的 TypeScript 风格 npx create react app my app typescript 当我构建应用程序时 捆绑包仍然包含 ES5 后的代码 例如 Symbol 我缺少什么
  • 如何使用 JavaScript 查找操作系统详细信息?

    如何使用 JavaScript 查找操作系统名称和操作系统版本 我开始编写一个脚本来读取可以测试的操作系统和浏览器版本Fiddle 随意使用和扩展 突破性的改变 自 2020 年 9 月起 新的 Edge 就会被检测到 因此 Microso
  • python 中的 NumPy ImportError - Dll 加载失败

    我已经安装了最新版本的 numpyhere适用于 64 位 Windows Vista 上的 python 3 2 与 matplotlib 一起使用 但是 当我尝试导入 matplotlib 时 出现以下错误 ImportError DL
  • java 使用套接字的简单 telnet 客户端

    我读过很多关于这个主题的东西 telnet 是一个协议 而不是一个简单的套接字连接 等待换行符 使用外部库等等 最重要的是 我需要一个快速而肮脏的 java telnet 应用程序启动并运行 不一定可扩展 也不一定漂亮 所以我试图避免使用库
  • Makefile:将 C 代码转换为 mex 代码(链接错误)

    我有一个C code which works fine使用makefile 现在 我正在努力convert it to mex文件 以便我可以从 Matlab 运行它 在这里 我也是using makefile approach 但是 me
  • 导入 scikit-learn 模块时出错

    我试图从集群模块调用一个函数 如下所示 import sklearn db sklearn cluster DBSCAN 我收到以下错误 AttributeError module object has no attribute clust
  • 无法在 Visual Studio 2013 上为 PCL 配置文件 158 安装包 MvvmCross.PortableSupport 3.2.1

    我有以下设置 但仍然无法将 mvmcross 库添加到我的项目中 VS2013更新3 Nuget 包管理器 2 8 50313 46 PCL Profile 158 我也尝试过其他像 78 等 安装日志如下 Attempting to re
  • bcrypt 和随机生成的盐

    所以我正在尝试 bcrypt 我有一堂课 如下所示 我从http www firedartstudios com articles read php security how to safely store your passwords 其
  • 禁止直接分配到多对多集合的前端。使用 emails_for_help.set() 代替

    我是 Django 新手 没有找到有关此问题的任何参考资料 当我在 Django 模型中使用多对多字段时 出现此错误 models py 我猜问题是在视图中分配 m2m 字段 views py 来自表格 forms py 如何在视图中分配
  • Python asyncio:未引用的任务被垃圾收集器销毁?

    我正在编写一个程序 它通过 AMQP 接受 RPC 请求以执行网络请求 CoAP 处理 RPC 请求时 aioamqp 回调会生成负责网络 IO 的任务 这些任务可以被视为后台任务 它们将无限期地运行以通过 AMQP 流式传输网络响应 在这
  • 如果最多出现两次点和破折号,则正则表达式匹配

    我需要一个正则表达式来匹配最多包含 2 个破折号和 2 个点的任何字符串 不一定要有破折号或点 但如果有 3 个以上破折号or3 个点或什至同时包含 3 个以上破折号和 3 个以上点 则正则表达式不得与字符串匹配 旨在用于 PHP 我知道使