Kotlin中正则表达式分析
一、首先来看一下Java中的正则表达式的写法
package cn.kotliner.java.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created wangdong
* 用正则表达式,从字符串中提取电话号码
*/
public class Main {
public static void main(String... args) {
String source = "Hello, This my phone number: 010-12345678. ";
String pattern = ".*(\\d{3}-\\d{8}).*";
Matcher matcher = Pattern.compile(pattern).matcher(source);
while(matcher.find()){
System.out.println(matcher.group());
System.out.println(matcher.group(1));
}
}
}
运行结果:
Hello, This my phone number: 010-12345678.
010-12345678
二、接下来看一下Kotlin中的正则表达式的写法
package cn.kotliner.kotlin.regex
import java.util.regex.Pattern
/**
* Created by wangdong
* 正则表达式
*/
fun main(args: Array<String>) {
val source = "Hello, This my phone number: 010-12345678. "
//用Raw字符串定义正则表达式
val pattern = """.*(\d{3}-\d{8}).*"""
//将正则规则传入到Regex中,调用findAll方法,将需要查询的源传进来
//将它变成一个list,将它MatchResult打平用flatMap,得到groupValues集合,用forEach将他打印出坑了
Regex(pattern).findAll(source).toList().flatMap(MatchResult::groupValues).forEach(::println)
}
运行结果:
Hello, This my phone number: 010-12345678.
010-12345678
好啦,结束啦

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Java Fork Join 框架
Doug Lea 关于Java 7引入的他写的Fork/Join框架的论文 0. 摘要 这个框架通过(递归的)把问题划分为子任务,然后并行的执行这些子任务,等所有的子任务都结束的时候,再合并最终结果的这种方式来支持并行计算编程。就设计层面来说主要是围绕如何高效的去构建和管理任务队列以及工作线程来展开的。 1. 简介 Fork/Join并行方式是获取良好的并行计算性能的一种最简单同时也是最有效的设计技术。Fork/Join并行算法是我们所熟悉的分治算法的并行版本,典型的用法如下: fork将会启动一个新的并行 Fork/Join子任务 join会一直等待直到所有的子任务都结束。 Fork/Join算法,如同其他分治算法一样,总是会递归的、反复的划分子任务,直到这些子任务可以用足够简单的、短小的顺序方法来执行。 2. 设计 Fork/Join程序可以在任何支持以下特性的框架之上运行:框架能够让构建的子任务并行执行,并且拥有一种等待子任务运行结束的机制。 然而,java.lang.Thread类(同时也包括POSIX pthread,这些也是Java线程所基于的基础)对Fork/Join程序...
-
下一篇
漫谈版本控制系统
背景 我想大家都给文件起过这些名称: HelloWorld.java HelloWorld_2018_04_05.java HelloWorld_2018_04_06.java 当我们单独使用这些文件时,按照上述方式可以很好的管理文件,但是,如果现在有两个人同时修改这份文件,那么,其中一人对文件修改的内容会被另一人的内容所覆盖,这是我们不希望看到的。譬如下面代码中,不能简简单单地用李四写的HelloWorld覆盖张三写的HelloWorld。 // 张三写的HelloWorld public class HelloWorld{ public void methodA(int arg){ System.out.print("hi"); System.out.print(arg); } } // 李四写的HelloWorld public class HelloWorld{ public void methodA(int arg){ System.out.print("hi " + arg); } public void methodB(){ int a = 1; int b = 2; S...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker容器配置,解决镜像无法拉取问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案