微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DCG:正则表达式喜欢匹配规则目标吗?

如何解决DCG:正则表达式喜欢匹配规则目标吗?

我之前问过如何做正则表达式之类的匹配:

DCG : zero-or-more,zero-or-one,one-or-more occurrences?

我用它来匹配令牌:

heroku run python manage.py createsuperuser

**You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin,auth,contenttypes,sessions.        
Run 'python manage.py migrate' to apply them.**

Username: 

我目前的问题是如何修改它们,使它们不仅适用于令牌,还适用于规则,即将规则目标作为参数传递。

我最初的想法是:

%zero or one
zo(_) --> [].
zo(W) --> [W].
%one or more
omo(W) --> [W].
omo(W) --> [W],omo(W).
%zero or more
zmo(_) --> [].
zmo(W) --> [W],zmo(W).

但它看起来很可疑;\


f.e.这简化了:

zo(G) --> {\+ atomic(G),call(G)}.

那些:

create(Ctx) --> ([create];[make]),zo(new),[Ctx].

想象一下:

create(Ctx) --> [create,Ctx].
create(Ctx) --> [make,new,Ctx].
create(Ctx) --> [create,Ctx].

将解析:

multiple(Ctx) :- omo(create(Ctx)),....

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。