2015-06-05 44 views
4

我想知道從Java自然語言中創建正則表達式的可能性。爲了解釋這個,讓我給一個用例。從自然語言創建正則表達式

支持我想檢查下列字符串格式是否正確。

"aaaa-bbbb-cccc" 

在這種情況下,一個有效的字符串的業務定義如下:

4 letters, then hyphen, then 4 letters, then hyphen, then 4 letters. 

來實現這一點的常用方法是讓從業務需求並編寫相應的正則表達式。但我很想知道是否有任何庫可用於從自然語言創建正則表達式。這樣我們可以要求企業以他們也能理解的方式提供這些格式。

+2

你可能想使用像ANTLR,YACC等編譯器編譯器。這會給你更多的靈活性。 –

+0

您可以通過構建器模式實現相對簡單的DSL –

+2

通常,提供編寫任何嚴格規範的「自然語言」方式是非常非常困難的問題。人們撰寫了關於這些主題的博士論文。 – DJClayworth

回答

0

您可能想看看可用於Java的業務規則引擎:Drools,Jess,EasyRules。在業務規則引擎中,您可以定義從業務獲得的需求(規則),然後檢查傳入的數據(事實)。

+0

這可能適用於所描述的情況,但它不是一個正則表達式。 OP能澄清正則表達式的需要嗎? –