我正在编写一个需要在运行时定义和编译模式的应用程序。使用Java Pattern
API,我需要传递一个字符串并获得一个模式。像这样:
Pattern.compile("ab*|c*");
问题是我的模式是模块化的,我想用替代的克莱恩星等组成它们,例如:
Char a = new Char('a');
Char b = new Char('b');
Char c = new Char('c');
Regex r = new Regex(new Alt(new Seq(a, new KleeneStar(b)), new KleeneStar(c)));
Pattern.compile(r);
我还没有在JDK中找到一个API来允许我这样的事情。我认为是潜在的 模式的实现应该有这样的API。有没有人知道如何从中获得这样的API 标准的Java,还是有第三方库?
最后,我想我可以自己创建一个这样的API,其中有一些递归访问者可以打印出来 字符串,但如果已经退出则会很好。
答案 0 :(得分:0)
VerbalExpressions看起来就像你所描述的那样。 ab*|c*
会表达为:
VerbalExpression.regex()
.then("a").then("b").zeroOrMore()
.or("c").zeroOrMore()
.build()
答案 1 :(得分:0)
尝试http://itsallbinary.com/project-simply-regex/
https://github.com/itsallbinary/simply-regex
代码示例:
var myarray = new Array();
$.ajax({
url: "/member/CheckUser",
type: "POST",
success: function(data){
var myarray = $.parseJSON(data);
array = myarray.result;
myarray = array.split(',');
},
error: function (xhr, ajaxOptions, thrownError) {
//alert(xhr.status);
alert(thrownError);
},
//dataType:"json"
});
$(".tab").each(function(){
if(jQuery.inArray($(this).attr('id'), myarray) !== -1){
var id = $(this).attr('id');
$('#'+id).removeClass('tab');
$('#'+id).hide();
}
});