Regex允许使用单连字符和下划线,但不允许在字符串的开头或结尾

本文关键字:字符串 不允许 开头 结尾 许使用 连字符 下划线 Regex | 更新日期: 2023-09-27 18:16:12

我修改了这个Regex,允许使用下划线、连字符、字母和数字。我正在尝试进一步修改它,使其具有以下属性:

  1. 只允许数字、字母
  2. 允许下划线或连字符位于第一个字符和最后一个字符之间
  3. 不能以下划线连字符开头(仅在第一个字符和最后一个字符之间(

以下是我现在拥有的:

^[a-zA-Z0-9_-]*$

Regex允许使用单连字符和下划线,但不允许在字符串的开头或结尾

试试这个:

^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$

或者这样,只需确保字符串不会以连字符或下划线开头:

^[a-zA-Z0-9][a-zA-Z0-9_-]*$
^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9])$

三种可能性中的任意一种:

  • [a-zA-Z0-9]
  • [a-zA-Z0-9][a-zA-Z0-9]
  • [a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9]