2016-10-31 4 views
2

나는이 작품이 정규식 :불행은, 기본 패턴이 작동하지 않습니다

Str.string_match (Str.regexp "[0-9][0-9][0-9][0-9]\\.[0-9][0-9]\\.[0-9][0-9]") dir 0 

는하지만 그것을 단순화하기 원하고 있었다

"\\d{4}\\.\\d{2}\\.\\d{2}" 

단순히 작동하지 않습니다 다른 시도는 효과가 있지만 나는 d, {} 및 심지어 문자를()로 그룹화하는 데 어려움을 겪고 있다고 결론을 내었습니다. 이 패턴은 다른 언어로도 작동하며이 거대한 목록의 예제에서도 사용됩니다. http://pleac.sourceforge.net/pleac_ocaml/patternmatching.html

아이디어가 있으십니까? 감사합니다

+0

가 작동하지 않는 것 있으면 알려 주시기 바랍니다 – Plycoder

답변

1

ocaml-re (순수 OCaml로 작성되었으며 POSIX와 PCRE의 하위 집합을 포함하여 여러 정규식 구문을 지원)과 같은 "\ d"구문을 지원하는 다른 라이브러리를 사용할 수 있습니다.

예를 들어

:

$ opam install re 

$ ocaml 
# #use "topfind";; 
# #require "re.pcre";; 
# let re = Re_pcre.regexp "\\d{4}\\.\\d{2}\\.\\d{2}";; 
# Re.execp re "1234.01.243";; 
- : bool = true 
# Re.execp re "1234.501.24";; 
- : bool = false