Clojure Enlive:使用正则表达式的选择器

时间:2013-09-04 01:31:43

标签: regex clojure enlive

我正在尝试选择:li节点,其内容为“(SCIAN”:

<li>...</li>
<li class="">
                Conception de systèmes informatiques et services connexes (SCIAN 541510)
            </li>

<li>...</li>

我没有尝试过这个:

(html/select
    fetched
    [[:li (html/has [(html/re-pred #"\w*SCIAN\b")])]])))

感谢您的帮助!

注意:我尝试过使用这些模式但没有成功,所以我可能会做错事: https://groups.google.com/forum/#!topic/enlive-clj/thlhc5zBRUw

2 个答案:

答案 0 :(得分:1)

我认为正则表达式与法语口音相结合会导致问题:

    (def s "è")
    (def r #"\w") 
    (re-matches r s)
    ;;; => nil
    (def s "e")
    (re-matches r s)
    ;;; => "e"

答案 1 :(得分:1)

为了实现这一目标,我们实际上不需要使用正则表达式:

(html/select
    fetched
    [[:li (html/pred #(.contains (html/text %) "SCIAN"))]])