一切福田,不離方寸,從心而覓,感無不通。

正则表达式不以xx开头或结尾

不以某个字符开头

  • ^(?!-):表示不以- 开头

不以某个字符结尾

  • (?<!-)$:表示不以- 结尾,注意有个<

例子:域名校验

  • 域名只能包含英文、数字和中英文连接线 -,并且不以中英文连接线- 开头或结尾
  • ^(?!-)(^[a-zA-Z0-9-]+$)(?<!-)$

from:https://www.jianshu.com/p/eabcf7f6a096

===============================================================

另一种做法:

比如匹配不以a开头的结果^[^a]

作为定位符时, ^ 表示字符串的开始, $表示字符串的结束, 细节: 不要将 ^ 的这种用法与中括号表达式内的用法混淆
在中括号中使用^时, 表示不匹配某个字符, 比如[^a]表示不匹配a

from:https://blog.csdn.net/littlehaes/article/details/102536451