Birisi OCaml'da etkili bir altyazı denetimi kodlamada bana yardımcı olabilir mi? İki dizeye bakılırsa, ilki ikincisini içerip içermediğini kontrol edin.Subamring check in Ocaml
Str
modülünü kullanarak bunu yapabilir miyiz?
Birisi OCaml'da etkili bir altyazı denetimi kodlamada bana yardımcı olabilir mi? İki dizeye bakılırsa, ilki ikincisini içerip içermediğini kontrol edin.Subamring check in Ocaml
Str
modülünü kullanarak bunu yapabilir miyiz?
Böyle bir şey işe yarayabilecek: Burada
let contains s1 s2 =
let re = Str.regexp_string s2
in
try ignore (Str.search_forward re s1 0); true
with Not_found -> false
fonksiyonun bazı testler şunlardır:
# contains "abcde" "bc";;
- : bool = true
# contains "abcde" "bd";;
- : bool = false
# contains "abcde" "b.";;
- : bool = false
# contains "ab.de" "b.";;
- : bool = true
let contains_substring search target =
String.substr_index search target <> None
Çekirdek gerektirir, değil mi? – unhammer
s2' özel regex karakteri vardır 'eğer bu alışkanlık iş içinde diziler, gibi. İlk önce Str.quote s2'yi aramanız gerekecek. – nlucaroni
Bunun doğru olduğunu düşünmüyorum. Regexp_string'in amacı tam olarak belirli bir dizeyle eşleşmektir. Muhtemelen dahili olarak alıntı yapıyor. Testlerim bu kodun iyi çalıştığını gösteriyor. –
içerir, kötü bir addır, bu nedenle uzantı kitaplıklarında başka bir anlamı vardır. – ygrek