You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配含'-'且存在其他单词字符的字符串

正则匹配需求
  • 已有可用正则 r"^[-]+$",作用是匹配完全由-构成的字符串,例如----、---、--------这类纯横杠内容。
  • 待实现的新匹配规则:匹配同时满足以下两个条件的条目:
    1. 字符串内包含-字符
    2. 字符串内同时存在其他单词字符(即匹配\w规则的字母、数字、下划线)

符合规则的参考示例:---vsgvrf-sgwfwrgfs---、-----hwvchwbfk、bfcbewubf------、-efefe-ege-、-gdiwen

之前写法的问题

之前尝试的两个正则:

  1. r"(\w[^-])+-+(\w[^-])*"
  2. r"\w[^-]+-+\w[^-]+|-+\w[^-]+|\w[^-]+-+"
    漏匹配的核心原因是写法强制要求\w后面必须紧跟非-字符,无法覆盖单个单词字符紧邻-、-在字符串首尾的部分场景。
正确正则方案

使用正向先行断言同时校验两个必填条件即可,正则模式如下:

r"^(?=.*-)(?=.*\w).+$"

如果业务场景里单词字符不需要包含下划线,把\w替换为[a-zA-Z0-9]即可。

匹配逻辑说明

  • ^ 标记字符串起始位置
  • (?=.*-) 校验:字符串任意位置至少存在1个-
  • (?=.*\w) 校验:字符串任意位置至少存在1个单词字符,自动排除纯-的不符合条目
  • .+$ 匹配整个字符串到结束位置
    这个写法没有字符顺序限制,不管-和单词字符怎么排布,只要同时存在两类字符就会命中,不会出现漏匹配。

内容的提问来源于stack exchange,提问作者kateryna_sm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:06:08