javajava手机号正则表达式式是什么?

JAVA正则表达式实例教程 - butter - ITeye技术网站
博客分类:
1、正则表达式的知识要点
1、正则表达式是什么?
正则表达式是一种可以用于模式匹配和替换的强有力的工具。
2、正则表达式的优点?
更少的代码,更高的效率。
3、正则表达式如何使用?
在下面的教程中我们将学习到正则表达式的用法。
4、正则表达式的缺点?
需要花一定的时间学习,这个时间由个人决定,一天或者更久一些。
2、正则表达式的各种符号及其含义
常用的符号 . 表示任意一个字符
\s 空格字符(空格键, tab, 换行, 换页, 回车)
\S 非空格字符([^\s])
\d 一个数字,(相当于[0-9]
一个非数字的字符,(相当于[^0-9] )
\w 一个单词字符(word character) (相当于 [a-zA-Z_0-9] )
\W 一个非单词的字符,[^\w]
^ 一行的开始
$ 一行的结尾
\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束
[] 匹配方括号内的一个字符
例如:[abc] 表示字符a,b,c中的任意一个(与a|b|c相同)
[a-zA-Z] 表示从a到z或A到Z当中的任意一个字符
表示次数的符号 * 重复零次或更多次
例如:a* 匹配零个或者多个a
+ 重复一次或更多次
例如:a+ 匹配一个或者多个a
? 重复零次或一次
例如:a? 匹配零个或一个a
{n} 重复n次
例如:a{4} 匹配4个a
{n,} 重复n次或更多次
例如:a{4,} 匹配至少4个a
{n,m} 重复n到m次
例如:a{4,10} 匹配4~10个a
2JAVA正则表达式实例教程
12/11/2008
3、正则表达式实例
java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现:
1、首先引入java包:java.util.regex
2、使用方法如下:
共分三步:
①构造一个模式.
Pattern pile("[a-z]*");
②建造一个匹配器
Matcher m = p.matcher(str);
③进行判断,得到结果
boolean b = m.matches();
Matcher类提供三个匹配操作方法,三个方法均返回boolean类型,当匹配到
时返回true,没匹配到则返回false
①m.matches()
matches()对整个字符串进行匹配,只有整个字符串都匹配了才返回true
②m.lookingAt()
lookingAt()对前面的字符串进行匹配,只有匹配到的字符串在最前面才返
③m.find()
find()对字符串进行匹配,匹配到的字符串可以在任何位置
Matcher类的其他方法
int groupcount() 返回此匹配器模式中的捕获组数。
String replaceAll(String replacement) 用给定的replacement全部替代匹配的
String repalceFirst(String replacement) 用给定的replacement 替代第一次匹
appendReplacement(StringBuffer sb,String replacement)
根 据 模 式 用
replacement替换相应内容,并将匹配的结果添加到sb当前位置之后
StringBuffer appendTail(StringBuffer sb) 将输入序列中匹配之后的末尾字串
添加到sb当前位置之后.
group(n) 0代表永远都是匹配整个表达式的字符串的那部分 n&&0时代表
第n组匹配的部分
①字符匹配
Pattern p = pile(expression); // 正则表达式
Matcher m = p.matcher(str); // 操作的字符串
boolean b = m.matches(); //返回是否匹配的结果
System.out.println(b);
Pattern p = pile(expression); // 正则表达式
3JAVA正则表达式实例教程
12/11/2008
Matcher m = p.matcher(str); // 操作的字符串
boolean b = m. lookingAt (); //返回是否匹配的结果
System.out.println(b);
Pattern p = pile(expression); // 正则表达式
Matcher m = p.matcher(str); // 操作的字符串
boolean b = m..find (); //返回是否匹配的结果
System.out.println(b);
②分割字符串
Pattern pattern = pile(expression); //正则表达式
String[] strs = pattern.split(str); //操作字符串 得到返回的字符串数组
③替换字符串
Pattern p = pile(expression); // 正则表达式
Matcher m = p.matcher(text); // 操作的字符串
String s = m.replaceAll(str); //替换后的字符串
④查找替换指定字符串
Pattern p = pile(expression); // 正则表达式
Matcher m = p.matcher(text); // 操作的字符串
StringBuffer sb = new StringBuffer();
int i = 0;
while (m.find()) {
m.appendReplacement(sb, str);
//字符串出现次数
m.appendTail(sb);//从截取点将后面的字符串接上
String s = sb.toString();
⑤查找输出字符串
Pattern p = pile(expression); // 正则表达式
Matcher m = p.matcher(text); // 操作的字符串
while (m.find()) {
//m.start() 返回匹配到的子字符串在字符串中的索引位置.
//m.end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.
//m.group()返回匹配到的子字符串
4JAVA正则表达式实例教程
12/11/2008
3、下面通过几个例子来理解一下正则表达式的妙用
3.1 匹配字符串(matches()方法)
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示首字母是a,中间是任意字符,结尾以b结束
//不匹配的结果
p = pile("a*b");
m = p.matcher("baaaaab");
b = m.matches();
System.out.println("匹配结果:"+b); //输出:true
//匹配的结果
p = pile("a*b");
m = p.matcher("aaaaab");
b = m.matches();
System.out.println("匹配结果:"+b); //输出:false
public static void main(String argus[]){
5JAVA正则表达式实例教程
12/11/2008
3.2 判断手机号码(matches()方法)
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示第一位是1,第二位为3或5,结尾为9位数字的一串数字
p = pile("^[1][3,5]+\\d{9}");
m = p.matcher("");
b = m.matches();
System.out.println("手机号码正确:"+b); //输出:true
p = pile("[1][3,5]+\\d{9}");
m = p.matcher("");//错误
//m = p.matcher("a");//错误
字符串中有字母或者字符
b = m.matches();
System.out.println("手机号码错误:"+b); //输出:false
public static void main(String argus[]){
6JAVA正则表达式实例教程
12/11/2008
3.3 身份证号码验证
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示15位或者18位数字的一串数字
p = pile("\\d{15}|\\d{18}");
m = p.matcher("020080");
b = m.matches();
System.out.println("身份证号码正确:"+b); //输出:true
p = pile("\\d{15}|\\d{18}");
m = p.matcher("020080");//错误
b = m.matches();
System.out.println("身份证号码错误:"+b); //输出:false
public static void main(String argus[]){
7JAVA正则表达式实例教程
12/11/2008
3.4 email验证
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示邮箱号码
p = pile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+
([-.]\\w+)*");
m = p.matcher("");
b = m.matches();
System.out.println("email号码正确:"+b); //输出:true
p = pile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+
([-.]\\w+)*");
m = p.matcher("");//错误
b = m.matches();
System.out.println("email号码错误:"+b); //输出:false
public static void main(String argus[]){
8JAVA正则表达式实例教程
12/11/2008
3.5 IP地址检查
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示邮箱号码
<pile("\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}");
m = p.matcher("192.168.1.1");
b = m.matches();
System.out.println("IP正确:"+b); //输出:true
<pile("\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}");
m = p.matcher("192.168.1.1234");//错误
应该为3位不应该是4位
b = m.matches();
System.out.println("IP错误:"+b); //输出:false
public static void main(String argus[]){
9JAVA正则表达式实例教程
12/11/2008
3.6 中文名
import java.util.regex.M
import java.util.regex.P
public class RegTest{
static void test(){
Pattern p = //正则表达式
Matcher m = //操作的字符串
boolean b =
//正则表达式表示汉字的一串字符串
p = pile("^[\u4e00-\u9fa5]+$");
m = p.matcher("貂禅");
b = m.matches();
System.out.println("中文名正确:"+b); //输出:true
p = pile("^[\u4e00-\u9fa5]+$");
m = p.matcher("nick");//错误
只能是中文
b = m.matches();
System.out.println("中文名错误:"+b); //输出:false
public static void main(String argus[]){
10JAVA正则表达式实例教程
12/11/2008
3.7 字符串匹配的返回
import java.util.regex.M
import java.util.regex.P
public class RegTest {
static void test() {
* start()返回匹配到的子字符串在字符串中的索引位置.
* end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.
* group()返回匹配到的子字符串
Pattern pile("\\d+");
Matcher m=p.matcher("aaa");
while(m.find()){
System.out.println(m.start());//第一个循环返回3,第二个循环返回
System.out.println(m.end());//返回7,第二个循环返回14
System.out.println(m.group());//返回2233,第二个返回11222
public static void main(String argus[]) {
11JAVA正则表达式实例教程
12/11/2008
3.8 groupCount、group()、group(n)的用法
import java.util.regex.M
import java.util.regex.P
public class RegTest {
static void test() {
* 本例groupCount将返回三组a11bbb、11、bbb
Pattern pile("\\w(\\d\\d)(\\w+)");
Matcher m=p.matcher("aa11bbb");
if(m.find()){
int count = m.groupCount(); //返回匹配组的数目,而不是匹配字符串
for(int i = 0; i &= i++)
System.out.println("group " + i + " :" + m.group(i));
* 返回结果如下
* group 0 :a11bbb
* group 1 :11
* group 2 :bbb
public static void main(String argus[]) {
12JAVA正则表达式实例教程
12/11/2008
3.9 分割字符串(split ()方法)
import java.util.regex.M
import java.util.regex.P
public class RegTest {
static void test() {
Pattern pile("\\d+"); //将所含数字去掉
String str[] = p.split("aa11bbb33cc55gg");
for (int i = 0; i & str. i++) {
System.out.println(str[i]);
* 返回结果如下
public static void main(String argus[]) {
13JAVA正则表达式实例教程
12/11/2008
3.10 字符串替换(replaceAll()方法)
import java.util.regex.M
import java.util.regex.P
public class RegTest {
static void test() {
Pattern p = pile("\\d+"); //将所含数字全部替换为XX
Matcher m = p.matcher("aa11bbb33cc55gg");
String str = m.replaceAll("XX");
System.out.println(str);
* 返回结果如下
* aaXXbbbXXccXXgg
public static void main(String argus[]) {
14JAVA正则表达式实例教程
12/11/2008
3.11 字符串替换2(appendReplacement()方法及appendTail()方法)
import java.util.regex.M
import java.util.regex.P
public class RegTest {
static void test() {
Pattern p = pile("55");
Matcher m = p.matcher("aa11bbb33cc55gg55yy");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "@@");//用@@替换所有的55
System.out.println(sb.toString());//打印aa11bbb33cc@@gg@@
m.appendTail(sb);//将最后一次替换后的字符串加上
System.out.println(sb.toString());//打印aa11bbb33cc@@gg@@yy
* 返回结果如下 aa11bbb33cc@@gg@@、aa11bbb33cc@@gg@@yy
public static void main(String argus[]) {
15JAVA正则表达式实例教程
12/11/2008
4、常用的正则表达式
//email 正确的书写格式为 username@domain
static String _email
= "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+
([-.]\\w+)*";
//电话 正确格式 012-23-23-7654321
static String _tel
"\\d{4}-\\d{8}|\\d{4}-\\d{7}|\\d(3)-\\d(8)";
//手机号码
static String _phone
= "^[1][3,5]+\\d{9}";
//汉字 中国
static String _chinse = "^[\u4e00-\u9fa5]+$";
//IP 192.168.1.1
static String _ip
"\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}";
//QQ 456789
static String _qq
= "[1-9][0-9]{4,13}";
//邮编 210000
static String _mail
= "[1-9]\\d{5}(?!\\d)";
//身份证号码 15或者18位
static String _id
= "\\d{15}|\\d{18}";
1、通过以上的学习,大家可能对正则表达式有了初步的了解和认识,大家在以后的学
习和工作中逐渐加深对Java正则表达式的理解,一定会在编程的过程中起到很大作用。
浏览: 42850 次
来自: 广州
RoyMax 写道靠,我的文章在这里出来了,源连接在这里 ht ...
我尝试过你的办法了。
但扫描的时候 扫描不到条码呢。为什么呢、 ...
发送邮件时的速度超级慢??
不错的文章,谢谢分享
靠,我的文章在这里出来了,源连接在这里 http://blog ...您所在的位置: &
使用Java正则表达式匹配、替换HTML内容
使用Java正则表达式匹配、替换HTML内容
本文向您介绍使用Java正则表达式匹配和替换HTML的内容,作者介绍了两种方法,一种用于替换链接地址,一种用于替换图片。
曾经了解过JavaScript的正则表达式,知道其功能的强大,对于处理文本比用普通的API处理不管从效率上还是从功能上都有很大的优势。今天项目要求用到Java的正则表达式,于是在网上Google,找到一个Jakarta ORO的库,听说是Java中功能最强大的正则表达式库,确实也如此,Sun公司的JDK里自带的正则表达式功能是远远不如ORO库,从正则表达式的角度上看,其比普通的API处理文本是复杂很多。
但如果应用得恰当的话,会提高工程的质量,于是项目中就应用了这个ORO库,把浏览器请求得到的HTML页面进行解释替换实现一个代理采集信息的功能。感觉自己好像是在开发软件,不是在设计网页。正则表达式有一个很好用的工具--RegexBuddy,应用这个工具可以调度一个匹配你需要的正则表达式串,经过几番调度,把一些HTML标签的正则表达式匹配出来。
第一:像网页链接&a .......... href="[url1]" .......&之间的内容中[URL[绝对地址替换成相对地址,首先要查找匹配这个链接,查找匹配这个串的正则表达式串为
&&&&&String&&patternStrs="(&\\s*a\\s+(?:[^\\s&]\\s*){0,})href\\s*=\\s*(\"|'|)([^\\2\\s&]*)\\2((?:\\s*[^\\s&]){0,}\\s&*&)"; &&&&&PatternCompiler&complier&=&new&Perl5Compiler(); &&&&&PatternMatcher&matcher&=&new&Perl5Matcher(); &&&&&&Pattern&patternForLink&=&pile(patternStrs, &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Perl5Compiler. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&CASE_INSENSITIVE_MASK); &&&&&PatternMatcherInput&input&=&new&PatternMatcherInput(htmlContent); &&&&&while&(matcher.contains(input,&patternForLink))&{ &&&&&&&MatchResult&match&=&matcher.getMatch(); &&&&&&&&&&&&} &&
第二:对其他的标签也类似只要把匹配的字符串改一下为要匹配的标签就可以了。(如IMG标签)
(&\s*img\s+(?:[^\s&]\s*){0,})src\s*=\s*("|'|)([^\2\s&]*)\2((?:\s*[^\s&]){0,}\s*&),这样就可以处理
&img.....................src="[url]"...............&的标签匹配,对其他的标签也一样.
总结:对于大量要处理的文本,建议还是用到正则表达式,而要处理的文本比较少时,用普通的字符串API处理函数就足够了。
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&&&的更多文章
这周的头版头条是“双十一”。凌晨12点守在电脑前抢东西的各位,
本次的专刊为大家提供了Oracle最新推出的Java SE 8详细的开发教程,从解读到探究Java 8最新
Eclipse 是一个开源的、可扩展的集成开发环境。平台本
这个架构是从我近期在做的一个项目中剥离出来的,这个
MongoDB的转变也正是10gen的转变,Dwight Merriman在
本书深入浅出地说明了如何利用Java、Flash及XML进行Flash富媒体应用程序的开发。
本书知识丰富,内容结构合理,包括:Flash影片
51CTO旗下网站当前位置: >
> JAVA正则表达式中的小括号是做什么的?解决办法
JAVA正则表达式中的小括号是做什么的?解决办法
madesijiusile & at
JAVA正则表达式中的小括号是做什么的?求教!!
&[^@^.]+@[[^@^.]+\\.]+(com|gov|net|com\\.cn|edu\\.cn) &
&[^@^.]+@[[^@^.]+\\.]+[com|gov|net|com\\.cn|edu\\.cn] &
那么()跟[]有什么区别
仅仅匹配方括号其中的字符
分组,圆括号中的字符视为一个整体。 uyu2yiyi & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-}

我要回帖

更多关于 ip正则表达式 java 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信