大家帮忙想想办法,如何从一篇文章中截取身份证号!!!!急急。。

hellonight 2012-07-04 10:26:55
问题同上。。。
...全文
307 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
宏Lee 2012-07-04
  • 打赏
  • 举报
回复
返回多个:
public static List<String> getVlues(String values) {
String str = "\\d{6}((19|20)\\d{2})((0[0-9])|(1[0-2]))(((0|1|2)[0-9])|(3[0,1]))\\d{3}[xX\\d]";
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(values);
List<String> value = new ArrayList<String>();
while(matcher.find()){
value.add(matcher.group());
}
return value;
}
宏Lee 2012-07-04
  • 打赏
  • 举报
回复
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class AdminTest {

public static void main(String[] args) {

String test = "asdsdfdsf sf dsfdsfsdf safasf 撒旦撒旦写个你的身份证发射的佛挡杀佛速度斯蒂芬的萨芬的萨芬斯蒂芬发实打实的发";
System.out.println(AdminTest.getVlues(test));
}

public static String getVlues(String values) {
String str = "\\d{6}((19|20)\\d{2})((0[0-9])|(1[0-2]))(((0|1|2)[0-9])|(3[0,1]))\\d{3}[xX\\d]";
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(values);
if (matcher.find()) {
return matcher.group();
}
return "";
}
}
在test中加上你的身份证号嘛,如果要返回多哥身份证,只需要把String改为集合即可
菖蒲老先生 2012-07-04
  • 打赏
  • 举报
回复
15位数字或18位数字
^\d{15}|\d{}18$

17位数位+X
^\\d{17}(\\d|x)$
菖蒲老先生 2012-07-04
  • 打赏
  • 举报
回复
15位数字
^\d{15}|\d{}18$

18位数字或17位数位+X
^\\d{17}(\\d|x)$
hellonight 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:

把你的文章全部读到一个String里面去,再使用正则截取。。。

正则截取的思路很多,我通常会这样做:

1。把String的内容中,非数字或者X的替换成空格
2。将所有的连续空格替换成一个空格
3。把替换后的字符串分割成String数组(split("\\s"))
4。遍历数组,如果数组中的元素满了18位,并且前17位都是数字,第18位是数字或者X的话……
[/Quote]请问,哪三句代码啊。。。。给个正则吧,O(∩_∩)O谢谢
hellonight 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
身份证号是15位数字或18位数字或17位数位+X吧?
这样格式,那就看是这三种的字符串就找出来。
不过可能有不是身份证的东东也找出来了。具体实现看你的“一篇文章”是什么样的。
[/Quote]文章是通过爬虫从网上抓取的内容
brightyq 2012-07-04
  • 打赏
  • 举报
回复
身份证号是15位数字或18位数字或17位数位+X吧?
这样格式,那就看是这三种的字符串就找出来。
不过可能有不是身份证的东东也找出来了。具体实现看你的“一篇文章”是什么样的。
hellonight 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
把你的文章全部读到一个String里面去,再使用正则截取。。。

正则截取的思路很多,我通常会这样做:

1。把String的内容中,非数字或者X的替换成空格
2。将所有的连续空格替换成一个空格
3。把替换后的字符串分割成String数组(split("\\s"))
4。遍历数组,如果数组中的元素满了18位,并且前17位都是数字,第18位是数字或者X的话,那么我就认为它是一个身份证号……
[/Quote]嗯,有道理,在后台能不能写个身份证号码的正则。。
api工厂 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

把你的文章全部读到一个String里面去,再使用正则截取。。。

正则截取的思路很多,我通常会这样做:

1。把String的内容中,非数字或者X的替换成空格
2。将所有的连续空格替换成一个空格
3。把替换后的字符串分割成String数组(split("\\s"))
4。遍历数组,如果数组中的元素满了18位,并且前17位都是数字,第18位是数字或者X的话,那么我就认为它是一个身份证……
[/Quote]

既然已经用了正则,还去替换空格做什么?也不要去split,直接用正则去匹配取出来就可以了。3句代码搞定的事情。
宏Lee 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

把你的文章全部读到一个String里面去,再使用正则截取。。。

正则截取的思路很多,我通常会这样做:

1。把String的内容中,非数字或者X的替换成空格
2。将所有的连续空格替换成一个空格
3。把替换后的字符串分割成String数组(split("\\s"))
4。遍历数组,如果数组中的元素满了18位,并且前17位都是数字,第18位是数字或者X的话,那么我就认为它是一个身份证……
[/Quote]
完全的不现实,要是文章长的不得了,你还去替换?
it491328322 2012-07-04
  • 打赏
  • 举报
回复
把你的文章全部读到一个String里面去,再使用正则截取。。。

正则截取的思路很多,我通常会这样做:

1。把String的内容中,非数字或者X的替换成空格
2。将所有的连续空格替换成一个空格
3。把替换后的字符串分割成String数组(split("\\s"))
4。遍历数组,如果数组中的元素满了18位,并且前17位都是数字,第18位是数字或者X的话,那么我就认为它是一个身份证号码了。
hellonight 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
如果文章在页面上,可以使用js的正则表达式去截取,如果文章从后台传输过来的话,可以在后台使用java的方法截取
[/Quote]是在后台啊,用java如何截取
hellonight 2012-07-04
  • 打赏
  • 举报
回复
是在后台啊,用java如何截取
gufengwyx1 2012-07-04
  • 打赏
  • 举报
回复
如果文章在页面上,可以使用js的正则表达式去截取,如果文章从后台传输过来的话,可以在后台使用java的方法截取

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧