如何在Ocaml中使用正則表達式來查找精確匹配?例如,我有一個這樣的代碼:使用正則表達式在Ocaml中匹配確切的字符串
let contains s1 s2 =
let re = Str.regexp_string s2
in
try ignore (Str.search_forward re s1 0); true
with Not_found -> false
其中s2爲「_X_1」和S1像「A_1_X_1」,「A_1_X_2」,飼料串....等的功能「包含」。目標是在s1爲「A_1_X_1」時找到完全匹配。但是當前的代碼甚至在s1是「A_1_X_10」,「A_1_X_11」,「A_1_X_100」等時找到匹配。
我試着用「[_x_1]」,「[_X_1] $」作爲s2而不是「_X_1」,但似乎沒有工作。有人可以建議什麼是錯的?
您使用'Str.regexp_string'產生,從字面上傳遞的字符串相匹配的正則表達式,而不用解釋元字符。 – 2011-12-30 13:15:53
是的,你是對的馬蒂亞斯。還包含「A_1_X_1」「_X_1 $」返回false – 2011-12-30 13:18:14
是的,我希望如果我們將「_X_1」傳遞給它,Str.regexp_string將返回^ _X_1 $。因此我的代碼就是這樣寫的。但Str.regexp_string正在做別的... – 2011-12-30 13:22:39