Clojure 学习入门(16)—— 正则表达式
发布时间:2020-12-13 23:12:12 所属栏目:百科 来源:网络整理
导读:一、创建 正则表达式 re-pattern函数: 函数 (re-pattern) 接受一个字符串参数,返回一个正则表达式样式(java.util.regex.Pattern类的实例)。这个样式能用于正则表达式匹配 user=(re-pattern "d+" ) # "d+" 也可以使用读取宏来直接用文本的方式输入正则
一、创建正则表达式
re-pattern函数: 函数 (re-pattern) 接受一个字符串参数,返回一个正则表达式样式(java.util.regex.Pattern类的实例)。这个样式能用于正则表达式匹配
也可以使用读取宏来直接用文本的方式输入正则表达式:在字符串前使用#符号。和用re-pattern函数生成的一样,例如,下面的表示方式和前面的例子是相同的: user=>#"d+"
re-matcher函数: re-matcher函数接受两个参数:一个正则表达式样式和一个字符串。返回一个有状态的"matcher"对象,提供给其它正则函数而不是直接提供样式。Matchers是java.util.regex.Matcher.类的实例。 user=>(re-matcher#"d+""abc12345def")
这里的def函数用于定义变量,后面会描述
二、使用正则表达式: re-find函数: re-find接受一个样式与一个字符串或者一个matcher。每次调用,返回matcher中下一个符合正则匹配的结果。 user=>(re-find#"d+""abc123")
re-matches函数: re-matches接受两个参数:一个正则表达式样式和一个字符串。返回任何和正则表达式样式匹配的字符串,如果没有匹配则返回nil。例如下面的代码: user=>(re-matches#"hello""hello,world")
re-seq函数: re-seq接受一个样式与一个字符串。它返回一个使用永久匹配(matcher)的lazy sequence(懒序列)(这个sequence在一个连续的样式匹配的字符串中) user=>(re-seq#"d""clojure1.1.0")
re-groups函数: 接受一个matcher,返回从接近的发现与匹配的集合。如果没有嵌套集合,则返回一个完全匹配的字符串。如果有嵌套集合,则返回vector集合,第一个元素是完全匹配的(非嵌套) user=>(defphone-number"672-345-456-3212")
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |