gpt4 book ai didi

javascript - 正则表达式不匹配序列中的两个相同字符

转载 作者:行者123 更新时间:2023-11-28 18:40:42 25 4
gpt4 key购买 nike

我知道这对你们来说非常简单,但我正在绞尽脑汁寻找匹配下面字符串的正则表达式。尝试过不同的正则表达式,但每次都失败。下面是需要匹配/不匹配的字符串。

S__ATHEESH – not match
S_A_T_HEESH – match
S’_ATHEESH – match
S’’ATHEESH – not match
S-A_THEESH - match

这是要求

a.       A name can have the special characters – space, apostrophe, underscore and hyphen. 
b. There can be more than 1 special character in a name, but same special character cannot repeat more than once continuously.
c. There should be minimum 2 characters entered in the name field

我有以下reg ex,需要修改

^([a-zA-Z]+[ _'-])*[a-zA-Z]+$

感谢您的帮助。

最佳答案

以下正则表达式将满足您的要求:

^(?=.{2})(?:[a-zA-Z]+|([ _’'-])(?!\1))+$
  • ^ 断言字符串开头的位置
  • (?=.{2}) 至少 2 个字符
  • 和(:
    • [a-zA-Z]+ 至少一个字母字符
  • 或者:
    • ([ _''-]) 空格、下划线、魔术撇号、撇号或破折号,在捕获组 1 中捕获
    • (?!\1) 否定前瞻,即刚刚捕获的内容不是下一个字符
  • )+ 尽可能多次
  • $ 断言字符串末尾的位置

Demo

关于javascript - 正则表达式不匹配序列中的两个相同字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com