使用正则表达式验证字符串

时间:2015-04-09 18:14:52

标签: regex

我需要编写正则表达式来处理下面的约束:

名称只能包含字母,数字,连字符( - ),美元符号,括号([,])和下划线(_)。单个句点(。)仅允许在内部名称(abc.de)内,而不允许在内部名称(.abc或def。)的开头或结尾处。此处未列出的空格和所有其他特殊字符均不受支持。

我写了这样的话:

(^[^\.])([A-Za-z0-9\.\$\[\]\_\-])*[^.]

但我仍然可以写一个符号:!或@或%

1 个答案:

答案 0 :(得分:1)

^(?!\.)([A-Za-z0-9\.\$\[\]\_\-])+(?<!\.)$

您需要anchors。另外[^\.]可以接受除.以外的任何其他内容。因此建议使用前瞻和后视。

参见演示。

https://regex101.com/r/sJ9gM7/78