`

身份证号码正则截取生日golang和java实现

阅读更多

身份证号码正则截取生日golang和java实现

身份证分为一代身份证和二代身份证,一代身份证为15位、二代身份证为18位。

举例一代身份证:130503670401001

二代身份证:41140219891216321

 

一代身份证正则截取:^(\d{6})(\d{6})(.*)$

二代身份证正则截取: ^(\d{6})(\d{8})(.*)$

 

 

下面分别设java和golang的截取实现

 

package spring;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by banxia on 16/6/20.
 */
public class Test {


    public static  void  main(String[] args){


      //  String str = "411402198912166321";
         String str = "130503670401001";
        // ^(\d{6})(\d{8})(.*)      18位
        //^(\d{6})(\d{6})(.*)       15位
        Pattern pattern = Pattern.compile("^(\\d{6})(\\d{6})(.*)");

        Matcher matcher = pattern.matcher(str);
        if (matcher.find()) {


            String group = matcher.group(2);
            System.out.print(group);

        }


    }
}

 

package main

import (


)
import (
	"regexp"
	"fmt"
)

func main() {


var str string = "411402198912166321"

	reg,err :=  regexp.Compile("^(\\d{6})(\\d{8})(.*)")

	if err != nil {
		return
	}

	if reg.MatchString(str) == true {
		submatch := reg.FindStringSubmatch(str)
		fmt.Println(submatch)
		fmt.Println("date is ",submatch[2])
	}




}

 

 

1
1
分享到:
评论
3 楼 worldcbf 2016-06-28  
ximinjie 写道
advantech 写道
截个生日还用正则表达式?我也是醉了。不管一代证还是二代证,从第六位开始就是出生日期。只不过根据一代证还是二代证substring一下就完事了。

java中substring比正则效率低,数据量大的时候非常明显。

java中substring比正则效率低 这个结论怎么得出来的呢?
2 楼 ximinjie 2016-06-21  
advantech 写道
截个生日还用正则表达式?我也是醉了。不管一代证还是二代证,从第六位开始就是出生日期。只不过根据一代证还是二代证substring一下就完事了。

java中substring比正则效率低,数据量大的时候非常明显。
1 楼 advantech 2016-06-20  
截个生日还用正则表达式?我也是醉了。不管一代证还是二代证,从第六位开始就是出生日期。只不过根据一代证还是二代证substring一下就完事了。

相关推荐

    算法与数据结构笔记+leetcode刷题笔记+大厂面试算法题(golang和java实现).zip

    这份压缩包文件“算法与数据结构笔记+leetcode刷题笔记+大厂面试算法题(golang和java实现).zip”包含了一系列关于算法、数据结构、LeetCode刷题以及Go和Java语言在解决面试问题中的应用。以下是这些主题的详细讨论...

    golang与java间的json-rpc跨语言调用需要的jar

    总之,`jsonrpc4j`为Java提供了实现JSON-RPC服务器和客户端的能力,使得Golang可以通过JSON-RPC与Java进行跨语言通信。通过理解和熟练运用这些技术,你可以构建起高效的分布式系统,充分利用不同语言的优势。

    Go-对人友好的Golang正则表达式

    在Go语言(Golang)中,正则表达式是通过`regexp`包来实现的,它提供了丰富的功能,使得开发者能够方便地处理字符串中的模式匹配问题。本篇文章将深入探讨Go语言中的正则表达式,帮助你更好地理解和使用这个强大的...

    国密加密 sm4 sm2 java python golang

    国密加密解密 sm4 sm2 的java python golang实现,java和python,golang的有一定区别,需要修改点东西才可以实现。 SM4Key = ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 16)) ...

    Go-IdValidator中国大陆用户身份证校验

    总结来说,`Go-IdValidator`是Go语言环境下用于验证中国大陆身份证号码的库,它包含了身份证的合法性检查、校验码计算、出生日期解析和性别判断等功能。在处理涉及中国用户身份验证的项目中,`IdValidator`是一个...

    Jni-Golang:java调用golang(通过Go1.5共享库)

    Java 和 Golang 都是现代编程语言,各自拥有独特的优点。在特定场景下,开发者可能需要将两者结合,实现 Java 程序调用 Golang 编写的代码。本篇文章将详细探讨如何通过 Go 1.5 及以上版本的共享库实现 Java 调用 ...

    leetcode算法学习笔记,Python,Golang,Java.zip

    本压缩包文件“leetcode算法学习笔记,Python,Golang,Java.zip”包含了针对这三种主流编程语言的解题心得和实战技巧,对于程序员尤其是准备面试或提高算法水平的开发者来说,是一份极有价值的学习资源。...

    Golangleetcode-golang,LeetCode solutions with Golang(Golang 实现

    【Golang】leetcode-golang,LeetCode solutions with Golang(Golang 实现) (Leetcode golang, LeetCode solutions with Golang (Golang implementation)) 【Golang】leetcode-golang,LeetCode solutions with Golang...

    java_celluar.zip_golang_golang 界面_java_celluar

    标题中的“java_celluar.zip_golang_golang 界面_java_celluar”暗示了这是一个与Java和Golang相关的项目,特别是涉及到Golang的图形用户界面(GUI)开发,并且可能是在实现一个基于Java细胞自动机(Cellular ...

    java,php,GOLang,JavaScript,AES加密解密代码互通

    本主题聚焦于四种常用编程语言——Java、PHP、GOLang(Go语言)和JavaScript——之间的AES(Advanced Encryption Standard)ECB(Electronic Codebook)模式128位加密解密的互操作性。下面我们将详细探讨这些语言...

    浅析golang 正则表达式

    Go语言的正则表达式还有捕获组(用括号表示)和反向引用的特性,允许在正则表达式中引用前面的捕获组。这在提取或替换特定模式的字符串时非常有用。 需要注意的是,在使用正则表达式时要小心一些常见的陷阱,比如...

    循环鼠标自动点击功能- Golang实现

    在本文中,我们将深入探讨如何利用Golang实现这个功能,并了解相关的核心知识点。 首先,我们需要了解的是Golang的图形用户界面(GUI)库。虽然Golang的标准库并没有内置GUI支持,但社区提供了多个第三方库,如`go-...

    mqtt-regex:将带有参数的MQTT主题转换为正则表达式

    正则表达式 将带有参数的MQTT主题转换为正则表达式。 除非需要正则表达式支持,否则应使用更快的 例子 var mqtt_regex = require ( "mqtt-regex" ) ; var pattern = "chat/+id/+user/#path" ; var room_message_...

    正则表达式工具 for mac

    "正则表达式工具 for mac" 是一款专为Mac用户设计的高效软件,它允许用户在多种语言环境中如PHP、JavaScript、Python、Golang、Java、Ruby、Perl以及C#中编写和测试正则表达式。 这款工具的特色在于其多语言支持,...

    golang实现高性能IM单聊系统,UDP分发

    本篇将深入探讨如何利用Golang实现一个高性能的IM单聊系统,特别关注UDP(用户数据报协议)在其中的作用和分发策略。 首先,我们需要理解Golang中的并发模型。Golang引入了goroutine和channel的概念,它们是实现高...

    10Golang方式实现贴吧爬虫demo.rar

    实现了找到DIV和href。通过HTML层级的方式匹配正则。 例如: [\s\S]+?href="(\/p\/[\s\S]+?)" 这种匹配方式。可以爬取任意类的网站。 使用方式,命令行输入:go run 10Golang方式实现贴吧爬虫demo.go

    Go-ratelimit基于令牌桶算法和漏桶算法来实现的限速限流Golang实现

    `ratelimit`库是一个实现了令牌桶算法和漏桶算法的Golang库,帮助开发者在应用中有效地实施流量控制。下面将详细探讨这两个算法及其在Golang中的实现。 ### 令牌桶算法 令牌桶算法是一种允许突发流量的流量整形和...

    深入Golang的WebSocket实现:构建实时通信应用

    Golang原生支持WebSocket,并且通过其标准库net/http中的http.ServeMux可以轻松实现WebSocket服务器和客户端。 Golang提供了构建WebSocket服务器和客户端的强大工具。通过本篇文章,你应该能够理解WebSocket的基本...

    go-stream:Java Stream API的golang实现

    go-stream在golang中提供Java Stream API类似于流操作 用法 package main import ( "github.com/aagu/go-stream" ) func main () { ints := [] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 } stream . New ( ints ). Filter...

Global site tag (gtag.js) - Google Analytics