regex 正则表达式识别特定的语言元素

qybjjes1  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(89)

我必须创建一个特定的正则表达式,问题是无论我尝试过什么,最终都不会成功。我看到过类似的帖子使用负向后看来解决这个问题,但在我的版本中显然不支持。
我要创建的正则表达式应该:
可以识别以下划线开头的标识符,MANDATORY后面跟一个字母字符,后面跟一个或多个字母数字或下划线字符。字符串不能以下划线结尾是很重要的。
我试过这个_*[a-zA-Z][a-zA-Z0-9_]*[^_]$,但它不会为所有的情况下工作.
此外,这种带有负面后视的解决方案给我带来了问题_*[a-zA-Z][a-zA-Z0-9_]*$(?<!_)
已受理案件的一些例子:

  1. a5
    1.第5版第3版
  2. a5_v2_2
    且未被接受
  3. 5_v_2
  4. a5版本2
    1.第5版第2版
  5. 5个
  6. a_
  7. a5-v-2
4nkexdtk

4nkexdtk1#

可以下划线开头
使用_?而不是_*
MANDATORY后接字母字符
[a-zA-Z]看起来不错,这取决于可以接受哪些字母
后面跟着一个或多个字母数字或下划线字符。
我们将[a-zA-Z0-9_]**一起使用,而不是与+一起使用,因为:
字符串不能以下划线结尾,这一点至关重要
这是最后一个区块[a-zA-Z0-9]
最终结果:_?[a-zA-Z][a-zA-Z0-9_]*[a-zA-Z0-9]

相关问题