我想使用MATCHEDTEXT在多个单词上创建一个匹配。为了选择多个单词,我想使用Star或Plus Reluctant量词。如果MATCHEDTEXT部分后面没有规则元素,但是如果有一个,就像我的例子中的最后一个“SW”那样,“CW +?”部分不匹配。
我的测试字符串
small Large Large small.
我的Ruta规则
STRING test;
DECLARE myObject(STRING label);
SW (CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"=ao) }) SW;
答案 0 :(得分:2)
这是UIMA Ruta< = 2.5.0中的错误。匹配失败,因为不情愿的量词对组合规则元素有一些问题。
您可以通过删除不需要的组合规则元素来解决您的问题:
SW CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
......或避免不情愿的量词,这也是不需要的:
SW CW+ { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
免责声明:我是UIMA Ruta的开发者
答案 1 :(得分:1)
使用Plus Greedy:
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:b="http://bootsfaces.net/ui"
template="/WEB-INF/templates/app_template.xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
使用Plus Reluctant:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:b="http://bootsfaces.net/ui"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:head>
<meta charset="utf-8" />
<title>#{i18n['page.title']}</title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="revisit-after" content="7 days" />
<meta name="DISTRIBUTION" content="GLOBAL" />
<meta http-equiv="PRAGMA" content="NO-CACHE" />
</h:head>
<h:body>
<c:set var="root" value="#{request.contextPath}/" />
<ui:insert name="navbar">
<ui:include src="/WEB-INF/content/navbar.xhtml"/>
</ui:insert>
<b:container>
<ui:insert name="content" />
</b:container>
<ui:insert name="footer">
<ui:remove>
<ui:include src="/WEB-INF/content/footer.xhtml"/>
</ui:remove>
</ui:insert>
</h:body>
</html>