2013-03-11 36 views
1

我使用jess規則引擎,我想實現子串匹配。 具體來說,我有一個deftemplate人,我檢查規則左手邊的人槽值,例如Jess子串操縱

(defrule vsvmntud (declare (salience 1)) (person (job unemployed)) =>....

上面的代碼將匹配整個字符串 「待業」 的工作。我想匹配子字符串,例如,如果作業包含子字符串「em」。 這是可能的;

+0

是否有任何站點/視頻/鏈接,它具有從基礎到複雜且非常複雜的Jess(Java規則引擎)示例程序? – Prateek 2015-03-30 09:16:59

回答

0

由於傑斯7,有對正則表達式的直接支持:像

(defrule vsvmntud 
    (person (job /.*em.*/)) 
    => 
    ... 

規則將匹配在Java的正則表達式.*em.*job插槽。

您也可以使用任何的功能,在傑斯庫 - 例如

(defrule vsvmntud 
    (person (job ?j&:(str-index em ?j))) 
    => 
    ... 

做同樣的事情(功能str-index返回FALSE如果沒有找到匹配,或者一個數字 - 這是當轉換爲布爾值時解釋爲TRUE - 否則。)

+0

非常感謝Hill先生。我很榮幸能有一個答覆。 – sakias 2013-03-13 21:15:21