我需要一个不以点开头或以[-_.]结尾的正则表达式。

此正则表达式有效,但在第一个条件下失败;它不以点开头:

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

例如:test.com应该是有效的字符串,但失败。

最佳答案

previous question中,您应该可以使用:

^[^.].*[^-_.]$

但是,如果您希望能够匹配1个字符串,则需要否定先行:
^(?![.])(?!.*[-_.]$).+

而且,如果您也想匹配空字符串,只需使用*而不是+即可。
^(?![.])(?!.*[-_.]$).*

09-28 00:34