变量标识符的正则表达式



变量的标识符(名称(有一组规则:

  1. 它可以包括上下字母、数字和下划线字符_
  2. 它只能以字母或下划线开头
  3. 如果标识符以下划线开头,则第二个字符必须是字母或数字,但不能是下划线

我为1和2规则编写了表达式[A-Za-z_][0-9A-Za-z_]{0,},但不知道如何处理3规则。

您可以使用以下划线或字符a-Za-z 开头的替换|

^(?:_[A-Za-z0-9]|[A-Z-a-z])w*$

解释

  • ^字符串开始
  • (?:非捕获组
    • _[A-Za-z0-9]匹配_或A-Za-z0-9中的任何一个
    • |
    • [A-Z-a-z]匹配字符a-Za-z
  • )关闭组
  • w*匹配一个单词字符0+次
  • $字符串末尾

Regex演示

或者使用单词边界

b(?:_[A-Za-z0-9]|[A-Z-a-z])w*b

Regex演示

试试这个:^[A-Za-z_]w*(?<!^__.*)

在这里演示

解释:

  • ^——表示字符串的开始

  • [A-Za-z_]——表示以字母开头或仅以开头

  • w*-表示可以出现0个或更多的单词字符(a-z、a-z、0-9和_(

  • (?<!^__.*)——表示不能从__ 开始

最新更新