我有一个正则表达式,允许字符串之间带有连字符或下划线。但我无法让它在开始或结束时都不允许。
这是我的正则表达式:
^(?!.*__.*)(?!.*--.*)[a-zA-Z0-9_\-]*$
这有效,除非它允许 -
或_
在开始或结束时。不应该有。
其他要求:
-
__
或--
字符串中的任何位置都不允许出现(但_-
和-_
是) - 除了
_
和-
,仅允许使用字母数字字符
最佳答案
这个怎么样?
^[^_-].*[^_-]$
只有一个痛点:根本不允许使用 1 个字符长度的字符串。这可能会解决它:
^([^_-](.*[^_-])?)?$
以及未记录的字母数字字符要求:
^([a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?)?$
关于java - 正则表达式允许单个下划线和连字符不在开头或结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57953008/