正则表达式 - 和 . _

use*_*211 -2 regex

为 az, AZ 编写正则表达式并允许 - 和 . _ 和整数。

例如:

  • 测试-Server1
  • 测试服务器
  • 测试_服务器

    试过这个,但不确定如何允许 - _ 。和整数:

    "^[az][AZ]*$"

Jam*_*urn 6

足够简单:

^[-a-zA-Z0-9_.]*$
Run Code Online (Sandbox Code Playgroud)

解释

  • ^ = 从输入开始匹配
  • [-a-zA-Z0-9_.] = 字符类(允许的字符列表):

    - 匹配文字“-”字符(必须是类中的第一个或最后一个字符)

    a-z 匹配小写字母字符

    A-Z 匹配大写字母字符

    0-9 匹配数字字符

    _ 匹配文字“_”字符

    .匹配文字“.” 字符(不像在字符类之外,它匹配任何字符)

  • *= 匹配 0 到无限个字符(用于+匹配至少一个字符)

  • $ = 匹配到字符串的末尾

选择

正如 stranac 在他的回答中提到的,您可以替换a-zA-Z0-9_\w,但我更喜欢更明确的版本,因为它更易于理解。

限制匹配字符

正如 OP 在评论中所要求的,将允许的字符数限制为 15:

^[-a-zA-Z0-9_.]{0,15}$
Run Code Online (Sandbox Code Playgroud)

where{0,15}表示仅匹配 0 到 15 个字符(字符类)。您可以根据需要调整值,例如,要匹配至少一个字符,请使用{1,15}.