`
phoebird
  • 浏览: 113843 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

正则表达式 五 边界匹配器 email验证正则表达式

    博客分类:
  • J2SE
阅读更多
package com.cn.regExp;

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

public class TestRegExp {

    public static void p(Object o) {
        System.out.println(o);
    }

    public static void main(String[] args) {
        //初步认识 .* + ?
        //.表示一位字符,* 表示零个或多个,+ 表示一个或多个,? 表示一个或零个
//        p("a".matches("."));//true,匹配一个字符任何字符
//        p("a".matches("a"));//true,匹配一个
//
//        p("".matches("a*"));//true,匹配零个
//        p("aaaaaaaaaaaaaaa".matches("a*"));//true,匹配多个
//
//        p("a".matches("a+"));//true,匹配一个
//        p("aaaaaaaaaaaaaaaaaaaa".matches("a+"));//true,匹配多个
//
//        p("a".matches("a?"));//true,匹配一个
//        p("aaaaa".matches("a?"));//false,匹配多个
//        p("".matches("a?"));//true,匹配零个
//
//
//        //X{n} X,恰好 n 次
//        p("aa".matches("a{2}"));//true,恰好2次a
//        //X{n,} X,至少 n 次
//        p("aaaaaaaaaa".matches("a{5,}"));//至少5次,最多无限
//        //X{n,m} X,至少 n 次,但是不超过 m 次
//        p("123333333337628383".matches("\\d{5,100}"));//    \\d表示数字 ,匹配数字至少3位最多不超过100位
//
//
//        p("aaa.168.0.15".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//false,验证数字至少1位,最多3位,之间用.分开
//        p("192.168.0.15".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//true
//        p("192".matches("[0-2][0-9][0-9]"));//true  []表示范围,[0-2]表示在0到2范围内一个数字,[0-9]表示在0到9范围内一个数字

        //  []表示范围,一个中括号匹配一个字符
//        p("a".matches("[abc]"));// true  ,匹配中括号内有一个a
//        p("a".matches("[^abc]"));//false,匹配除了abc以外的任意字符
//        p("a".matches("[a-zA-Z]"));//true,匹配小写的a-z或者大写的A-Z范围内一个字符
//        p("a".matches("[a-z | A-Z]"));//true 匹配小写的a-z或者大写的A-Z范围内一个字符
//        p("a".matches("[a-z[A-Z]]"));//true  匹配小写的a-z或者大写的A-Z范围内一个字符
//        p("R".matches("[A-Z && [RGB]]"));//true 必须在A-Z范围内并且是RGB范围中的一个

        //认识 \w 单词字符:[a-zA-Z_0-9]   \W  非单词字符:[^\w]
        //\d  数字:[0-9]  \D  非数字: [^0-9] 
        //\s 空白字符:[ \t\n\x0B\f\r]     \S 非空白字符:[^\s]
//        p(" \n\r\t\f".matches("\\s{5}"));//true,匹配5个空白字符
//        p(" ".matches("\\s"));//true,匹配一个空白字符
//        p(" ".matches("\\S"));//false,匹配一个非空白字符
//        p("a_9".matches("\\w{3}"));//true,匹配3位字符组成的单词
//        p("$_%".matches("\\w{3}"));//false
//        p("abc866666%&^#".matches("[a-z]{1,3}\\d+[&%^#]+"));//true,a-z 出现1次到3次,数字出现一次或多次,&%^# 出现一次或多次
//        p("\\abc".matches("\\\\[a-z A-Z]{1,3}"));//true,正则表达式匹配一个反斜线必须用\\

        //认识边界匹配器
        //   ^ 行的开头      $ 行的结尾  \b 单词边界  \z 输入的结尾
        //  \B 非单词边界  \A 输入的开头 \G 上一个匹配的结尾  \Z 输入的结尾,仅用于最后的结束符(如果有的话)

        //匹配以h开头的紧跟a-z的字符出现1到3次,后接o的单词边界,后面为零个或者多个任意的字符
        p("hello world".matches("^h[a-z]{1,3}o\\b.*"));//true
        p("hello world".matches("^h.*d$"));//true,匹配以h开头的后接任意零个或者多个以d结尾的字符
        p("helloWorld".matches("^h[a-z]{1,3}o\\b.*"));//false

        //空白行匹配
        p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));//true,以空白符开头并且不是空白行的零个或者多个以空白行结束

        //邮件匹配
        p("lichangjun@126.com".matches("\\w+@(\\w+.)+[a-z]{2,3}"));//true
            p("121183543@qq.com".matches("\\w+@(\\w+\\.)+[a-z]{2,3}"));//true
    }
}


 

分享到:
评论

相关推荐

    正则表达式

    对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $ 匹配一个输入或一行的结尾,/a...

    正则表达式必知必会pdf

    目录 · · · · · ·第1章 正则表达式入门1.1 正则表达式的用途1.2 如何使用正则表达式1.3 什么是正则表达式1.4 使用正则表达式1.5 在继续学习之前1.6 小结第2章 匹配单个字符2.1 匹配纯文本2.2 匹配任意字符2.3 ...

    Java正则表达式-详解(附相关真题)

    正则标记1.1 字符1.2 字符类1.3 预定义字符类1.4 边界匹配器(java一般不用到)1.5 Greedy 数量词1.6 Logical 运算符2. String类支持3. Java.util.regex包支持3.1 Pattern类(常用方法)3.2 Matcher类(常用方法)4. 简单...

    Java正则表达式学习笔记

     Matcher:一个提供各种匹配模式的匹配器。  Pattern:正则表达式的编译表示形式。  2. 编写正则表达式:  用一下方法测试  package pattern;  import java.util.regex.Matcher;  import java.uti

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...

    值得收藏的正则表达式大全

    在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 一、归类 1. “^” 同类 “^” 匹配输入字符串的开始位置。 “$” 匹配输入字符串的结束位置。 “\b” 匹配一个单词边界,也就是指...

    regex-reference:正则表达式快速参考

    快速的正则表达式参考/刷新器。 标志 i -不区分大小写。 元字符 . -任何字符。 ^ -任何起点。 $ -任何终点线。 []。 | -或运算符。 () -组| (或)表达式。 ? -前一个字符或组是。 \b单词边界。 ? -从0前一个字符或...

    vim-fnr:没有正则表达式的 Find-N-Replace 助手

    vim-fnr 在 Vim 中使用实时预览进行 Find-N-Replace(实验性)...特殊键Tab i - 不区分大小写的匹配w - 字边界匹配( \<STRING> ) g - 替换所有出现的c - 确认每次替换Tab或Enter返回CTRL-N或CTRL-P 自动完成选项 "

    Python核心编程第二版(ok)

     8.13 生成器表达式   8.14 相关模块   8.15 练习   第9章 文件和输入输出   9.1 文件对象   9.2 文件内建函数(open()和file())   9.2.1 工厂函数file()   9.2.2 通用换行符支持...

    Python核心编程第二版

     8.13 生成器表达式   8.14 相关模块   8.15 练习   第9章 文件和输入输出   9.1 文件对象   9.2 文件内建函数(open()和file())   9.2.1 工厂函数file()   9.2.2 通用换行符支持...

    Tcl_TK编程权威指南pdf

    其他使用正则表达式的命令 第12章 脚本库及软件包 确定软件包的位置:auto-path变量 使用软件包 对软件包加载的总结 package命令 基于文件tclindex的库 unknown命令 方便交互 tclshell的库环境 编码风格 ...

    美国..现代编译原理C语言描述.高清版

    2.4.1 将正则表达式转换为NFA 16 2.4.2 将NFA转换为DFA 18 2.5 Lex:词法分析器的生成器 20 程序设计:词法分析 22 推荐阅读 23 习题 23 第3章 语法分析 27 3.1 上下文无关文法 28 3.1.1 推导 29 3.1.2 语法分析树 ...

    代码之美(中文完整版).pdf

    第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中的增量编辑器:像本体一样的接口 2.1 版本控制与目录树的转换 2.2 表达目录树的差异 2.3 增量编辑...

    Java2核心技术.part5

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 ...

    Java2核心技术.part3

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 ...

    Java2核心技术.part1

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 13.5.3调用...

    Java2核心技术.part6

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 ...

    Java2核心技术.part4

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 ...

    Java2核心技术.part2

    12.8正则表达式 13章泛型程序设计 13.1为什么要使用泛型程序设计 13.2简单泛型类的定义 13.3泛型方法 13.4类型变量的限定 13.5泛型代码和虚拟机 13.5.1翻译泛型表达式 13.5.2翻译泛型方法 ...

    Scala程序设计(第2版)

    4.8 正则表达式的匹配 103 4.9 再谈case语句的变量绑定 104 4.10 再谈类型匹配 104 4.11 封闭继承层级与全覆盖匹配 105 4.12 模式匹配的其他用法 107 4.13 总结关于模式匹配的评价 111 4.14 本章...

Global site tag (gtag.js) - Google Analytics