You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GENEREX random方法生成指定长度正则匹配字符串时参数不生效

解决Generex random(min,max)生成字符长度不符合参数要求的问题

你的问题出在正则表达式的定义上:[a-zA-Z]本身只能匹配单个大小写字母,Generex的random(min, max)方法是基于你提供的正则规则生成字符串,它不会自动重复正则表达式来满足你指定的长度范围——正则本身只能生成1个字符,所以哪怕你传了4-15的参数,也没法生成更长的结果。

两种解决办法:

  1. 直接在正则里限定长度范围(推荐这种方式,逻辑更清晰)
    修改正则为[a-zA-Z]{4,15},这样正则本身就要求生成4到15个大小写字母,调用random()时无需再传参数:

    Generex generex = new Generex("[a-zA-Z]{4,15}");
    String output = generex.random();
    
  2. 保留正则的重复可能性,用方法参数约束长度
    把正则改成允许任意数量的大小写字母([a-zA-Z]+),这样random(4,15)就能在正则允许的范围内,生成4到15个字符的字符串:

    Generex generex = new Generex("[a-zA-Z]+");
    String output = generex.random(4,15);
    

简单来说:random(min, max)的作用是缩小正则允许的长度范围,而不是突破正则本身的规则去生成更长的字符串。只有正则本身支持生成对应长度的字符串时,这个参数才会生效。

内容的提问来源于stack exchange,提问作者flepponier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:35:20