>我有一个正则表达式,允许在两者之间带有连字符或下划线的字符串。但我无法让它在开头或结尾不允许
。这是我的正则表达式:
^(?!.*__.*)(?!.*--.*)[a-zA-Z0-9_-]*$
这有效,除了它允许在开始或结束时-
或_
。 这不应该有。
附加要求:
- 字符串中的任何位置都不允许使用
__
或--
(但_-
和-_
都允许( - 除
_
和-
外,只允许使用字母数字字符
这个怎么样?
^[^_-].*[^_-]$
只有一个痛点:根本不允许长度为 1 个字符的字符串。这可能会解决它:
^([^_-](.*[^_-])?)?$
对于字母数字字符的未记录要求:
^([a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?)?$