我试着知道一个字符串很好地形成了一个用逗号分隔的字符串,如“foo,bar,bang”和一个像“foo”这样的字符串应该不匹配 .
我不明白为什么我的正则表达式不适用于以下示例:
#load "str.cma"
let regexp = Str.regexp "[a-ZA-Z0-9]+(,[a-ZA-Z0-9]+)*"
let str = "foo,bar,bang"
let s = Str.string_match regexp str 0
我的正则表达式似乎很好但是最后一行的返回结果是错误的 . 我哪里错了?
1 回答
括号
( ... )
匹配OCaml正则表达式中的实际括号 . 要获得分组括号,您需要使用\( ... \)
.所以,以下应该工作:
笔记:
需要在字符串常量中转义
\
,因此\\( ... \\)
我修复了
a-z
范围