从自然语言创建正则表达式

时间:2015-06-05 15:59:18

标签: java regex

我想知道在Java中用自然语言创建正则表达式的可能性。为了解释这一点,让我给出一个用例。

支持我想检查以下字符串是否格式正确。

position:absolute, left:0; width:100%;

在这种情况下,有效字符串的业务定义如下:

"aaaa-bbbb-cccc"

实现此目的的通常方法是从业务中获取需求并相应地编写正则表达式。但我很想知道是否有任何库可用于从自然语言创建正则表达式。因此,我们可以要求企业以他们也能理解的方式提供格式。

2 个答案:

答案 0 :(得分:0)

您可能希望了解适用于Java的业务规则引擎:DroolsJessEasyRules。在业务规则引擎中,您可以定义从业务获得的需求(规则),然后检查传入的数据(事实)。

答案 1 :(得分:0)

您可能想看看simply-regex库。

这是您能够在自己的代码中创建正则表达式的方式,这是不言而喻的。可以不用一次将regex变量与键入的字符串一起使用,而可以根据需要用可读代码构建它一次。以后也很容易更改。

String builtRegex = SimpleRegex.regex().startingWith().exactString("abc")
                                   .then().oneOfTheCharacters('d', 'e', 'f')
                                   .build(); 
Pattern pattern = Pattern.compile(builtRegex); 
boolean isMatch = pattern.matcher(testString).matches();