我正在尝试制作一个接受这个的正则表达式:
- 只有 a-z、0-9、_ 个字符,最小长度为 3
- admin、static、my 和 www 被拒绝。
对于第一部分,我已经设法做到了:
^[a-zA-Z0-9\\_]{3,}$
但我不知道如何排除前面列出的单词。
例如,这意味着:
- static 是不允许的(当然),但是
- 静态是允许的
- 静态是允许的
使用这个正则表达式:
^(?!static|my|admin|www).*$
效果不佳:它排除了 statice(以及未授权词之后的所有内容)。
您知道哪个正则表达式适合我的需要吗?
最佳答案
尝试这样的事情:
^(?!static$|my$|admin$|www$).*$
这将不允许使用“static”,但允许使用“statice”、“statica”等。通过将每个列入黑名单的单词锚定到字符串的末尾,您将仅在它们单独存在且没有任何尾随字符时匹配它们。
编辑: codeaddict提出了一种更简洁的方法来做基本相同的事情:
^(?!(?:static|my|admin|www)$).*$
关于java - 正则表达式 - 排除名称的单词列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540398/