2016-02-08 74 views
0

根据正则表达式生成随机字符串的Java代码。我试过generex库,但它没有给出确切的输出。例如:根据正则表达式生成随机字符串的Java代码

 Generex generex = new Generex("^[6-9]\\d{9}$"); 
     System.out.println(generex.random()); 

输出为:^ 8677547981 $ 而我期待输出为8677547981.It似乎generex是不能处理特殊字符,例如 “^”, “$” 等

有人可以帮助吗?

+0

尝试转义美元符号:'\\ $' – Dima

回答

5

Generex不需要^$。由它创建的内容完全匹配正则表达式,而不是部分匹配。

Generex generex = new Generex("[6-9]\\d{9}"); 
System.out.println(generex.random()); 
+1

重点不在于它会生成完整字符串,但^和$是有效的正则表达式字符,但它将它们视为文字。它应该处理一个有效的正则表达式而不用修改,而不会引入会导致后续正则表达式验证失败的多余字符。 –

+1

@JeffVincent您应该在Generex项目中注册该错误,如果已经没有重复,我不附属于该项目 – Ferrybig

2

Generex使用dk.brics.automaton.RegExp类。它支持另一组正则表达式操作,如java.util.regex.Pattern。请参阅RegExp API

相关问题