gpt4 book ai didi

javascript - 下划线前后的正则表达式匹配字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:43 27 4
gpt4 key购买 nike

我必须编写一个包含以下匹配项的正则表达式:

  • 字符串应以字母开头 - [a-zA-Z]
  • 字符串可以包含字母、空格、数字、_-(下划线和连字符)
  • 字符串不应以 _-(下划线和连字符)结尾
  • 下划线字符前后不能有空格。

我想出了下面的正则表达式,但它似乎不起作用

/^[a-zA-Z0-9]+(\b_|_\b)[a-zA-Z0-9]+$/

测试用例:

HelloWorld // Match
Hello_World //Match
Hello _World // doesn't match
Hello_ World // doesn't match
Hello _ World // doesn't match
Hello_World_1 // Match
He110_W0rld // Match
Hello - World // Match
Hello-World // Match
_HelloWorld // doesn't match
Hello_-_World // match

最佳答案

你可以使用

^(?!.*(?:[_-]$|_ | _))[a-zA-Z][\w -]*$

参见 regex demo

解释:

  • ^ - 字符串的开始
  • (?!.*(?:[_-]$|_ | _)) - 在一些字符 (.*) 之后不得出现 ((?!...)) 字符串末尾的 _- ([_-]$ ), 也不是空格+__+空格
  • [a-zA-Z] - 匹配和使用的第一个字符必须是 ASCII 字母
  • [\w -]* - 0+ 字 (\w = [a-zA-Z0-9_]) 字符或空格或-
  • $ - 字符串结尾

关于javascript - 下划线前后的正则表达式匹配字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498175/

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