2016-02-08 106 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

相關問題