博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础之字符串匹配大全
阅读量:5326 次
发布时间:2019-06-14

本文共 1674 字,大约阅读时间需要 5 分钟。

 

 

博客出自:,转载注明出处! All Rights Reserved ! 

 

 

首先介绍几个概念:

字节:byte 字符:字母或者汉字等 位:计算机语言  用来表示0或1

1 bit     = 1  二进制数据 

1 byte  = 8  bit  
1 字母 = 1  byte = 8 bit 英文输入 如阿拉伯数字同样如此

1 汉字 = 2  byte = 16 bit 汉语输入

varchar(400) 表达最大长度为400 字节,即 400个字母或者200个汉字。

1M=1024*1024 byte

 

 

1、正则表达式

首先介绍下正规表达式,它的出现为匹配查询提供了便利,成为数据校验的“利器”。支持数字、英文字母、空格等,我们只讲最常用的。如果有更深层次的需要,可以查阅Java API 包名为“java.util.regex”

^:代表字符串开始,*:代表多个字符

 如上图regex 意为以c开头有多个b的字符串,结果输出cbb

$:代表结尾,?:代表一个字符,\d:代表数字

如上图regex意为找到一个以a开头,有一个b,且结尾以一个数字的串,结果输出ab1

\s:代表空格

 如上图,将str里两个空格变成一个空格,输出

 

\w:代表单个字符,.:点代表任意一个字符

 如上图,意为以任意字符开头,有多个d,并以字符结尾的字符串,输出结果为cddd

下面是几个常用的例子:

如上图,regex表示以0-9或a-f或A-F为内容的4个字符,结尾以数字,输出结果为c6dD3

如上图,regex表示4个字符,输出结果为了abb1,缺点在于把数字1也当成了字符。

如上图,两种方法均可验证18 位身份证,但好坏大家一眼就能看的出,输出中间那个串

如上图,方法比较正宗,用Pattern定义对象,使用Matcher定义对象来匹配,表示多个a一个b 的字符串,匹配结果b为true。

如上图,输出结果,模糊匹配与精确匹配。

2、字符串简单匹配

如上图最简单匹配,也最迅速,也最有效。

补充,"a".matches("[^abc]");取除了abc之外的其它字符

"a".matches("[abc]|[ABC]");

"a".matches("abc[ABC]");

"a".matches("abcABC");都表示取abc或者ABC

匹配网址

public class TestEmail {

public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader(
"D:\\share\\is0.html"));
String line="";
while((line=br.readLine())!=null){
parse(line);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void parse(String line) {
// TODO Auto-generated method stub
/**w表示以字母或者.或者-*/
Pattern p=Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
java.util.regex.Matcher m=p.matcher(line);
while(m.find()){
System.out.println(m.group());
}
}
}

转载于:https://www.cnblogs.com/fengju/archive/2011/12/12/6174513.html

你可能感兴趣的文章
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
selenium-滚动
查看>>
read from and write to file
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
Amcharts 柱状图和线形图
查看>>
APC注入
查看>>
关于ES6 Class语法相关总结
查看>>
文件处理
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
今晚的比赛(2011.12.4)
查看>>
统计细菌基因组ORF
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
获取EXe版本信息
查看>>