2016-03-28 23 views
2

dizisine dönüştürme Bir dizeyi beyaz boşluklu sözcüklerin bir listesine/dizisine nasıl ayırabilirim. BöyleBir dizeyi

let x = "this is my sentence";; 

Ve listeye inan bunları saklamak/dizi:

["this", "is", "my", "sentence"] 
+1

Olası yinelenen: ocamlfind ocamlopt -package re.pcre code.ml -linkpkg -o Test

OCaml web öğreticiler ton ve yardımcı, ben de hızlı bir şekilde hızlandırmak için sizi elde etmek için tasarlanmış bir blog yazısı var [OCaml, Python gibi String.split işlevine sahip mi?] (Http://stackoverflow.com/questions/23204953/does-ocaml-have-string-split-function-like-python) – Amadan

+1

Tüm süreci öğrenmek istiyorum OCAML için yeni olduğumdan bu tür bir işlem yapmanın ve işlevsel dillerdeki diziler, liste ve dize manipülasyonunda arka plan olmadığından. Sağlanan diğer cevap hala bana şüpheyle yaklaşıyor. – Leoking938

cevap

1

tam süreç şöyledir:

ilk opam install re

Eğer utop kullanıyorsanız, o zaman bu

#require "re.pcre" 

let() = 
    Re_pcre.split ~rex:(Re_pcre.regexp " +") "Hello world more" 
    |> List.iter print_endline 

gibi bir şey yapabilirsiniz ve sadece utop code.ml

ile çalıştırın Yerel kodu derlemek isterseniz,

:

let() = 
    Re_pcre.split ~rex:(Re_pcre.regexp " +") "Hello world more" 
    |> List.iter print_endline 

#require nasıl gittiğine dikkat edin.

sonra komut satırına yapacağın: ait http://hyegar.com/2015/10/20/so-youre-learning-ocaml/

2

standart kütüphane Str split_delim ve regexp'in türünü kullanma.

Str.split_delim (Str.regexp " ") "this is my sentence";; 
- : bytes list = ["this"; "is"; "my"; "sentence"] 

Son derece hızlı bir şekilde Kütüphaneleri aracılığıyla aramak için gerçekten çok iyi, Utop almak tavsiye (O zamanlar, orada Str. olduğunu gördü ve uygun işlev için baktım Str daktilo).

+1

Her şeyden önce, Str'in normal ifadeler için sistem kütüphanesi olduğunu bilmelisiniz. –

+0

Bu doğrudur, UTop her derde deva değildir, sadece körü körüne biraz daha kolay gelebilir. – BWStearns

İlgili konular