我需要编写正则表达式来处理下面的约束:
名称只能包含字母,数字,连字符( - ),美元符号,括号([,])和下划线(_)。单个句点(。)仅允许在内部名称(abc.de)内,而不允许在内部名称(.abc或def。)的开头或结尾处。此处未列出的空格和所有其他特殊字符均不受支持。
我写了这样的话:
(^[^\.])([A-Za-z0-9\.\$\[\]\_\-])*[^.]
但我仍然可以写一个符号:!或@或%
答案 0 :(得分:1)
^(?!\.)([A-Za-z0-9\.\$\[\]\_\-])+(?<!\.)$
您需要anchors
。另外[^\.]
可以接受除.
以外的任何其他内容。因此建议使用前瞻和后视。
参见演示。