首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带下划线或下划线的字母数字的RegExp模式

带下划线或下划线的字母数字的RegExp模式
EN

Stack Overflow用户
提问于 2022-02-03 18:25:05
回答 2查看 90关注 0票数 0

我在RegExp下面进行了搜索和尝试,但没有按我的要求工作。请提供PHP,它至少接受一个字母数字和可选下划线或连字符,但下划线或连字符不应在一行中重复两次。

代码语言:javascript
复制
/^([a-z0-9]+-)*[a-z0-9]+$/i

示例格式

  1. _test147
  2. 测试
  3. _a
  4. test_test
  5. 测试等
EN

回答 2

Stack Overflow用户

发布于 2022-02-03 18:31:22

您可以在忽略case模式中使用此正则表达式:

代码语言:javascript
复制
^[-_]?[a-z\d]+(?:[_-][a-z\d]+)*[-_]?$

RegEx演示

RegEx详细信息:

  • ^:开始
  • [-_]?:匹配可选的_-
  • [a-z\d]+:字母数字字符的匹配1+
  • (?::启动一个非捕获组
    • [_-]:匹配_-
    • [a-z\d]+:字母数字字符的匹配1+

  • )*:结束非捕获组。重复此组0次或多次
  • [-_]?:匹配可选的_-
  • $:结束

否则,如果您想要更好的性能,那么使用这个拥有式量词正则表达式:

代码语言:javascript
复制
^[-_]?[a-z\d]++(?:[_-][a-z\d]+)*[-_]?+$
票数 3
EN

Stack Overflow用户

发布于 2022-02-03 18:33:02

代码语言:javascript
复制
/^([-_]?[a-z0-9]+)+[-_]?$/i

这有一个可选的连字符或下划线的重复序列,后面跟着字母数字,然后允许在结尾处有另一个可选的连字符或下划线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70976422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档