`

常用的正则表达式(转)

    博客分类:
  • JAVA
阅读更多

“^d+$”  //非负整数(正整数 + 0)

“^[0-9]*[1-9][0-9]*$”  //正整数

“^((-d+)|(0+))$”  //非正整数(负整数 + 0)

“^-[0-9]*[1-9][0-9]*$”  //负整数

“^-?d+$”    //整数

“^d+(.d+)?$”  //非负浮点数(正浮点数 + 0)

“^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$”  //正浮点数

“^((-d+(.d+)?)|(0+(.0+)?))$”  //非正浮点数(负浮点数 + 0)

“^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$”  //负浮点数

“^(-?d+)(.d+)?$”  //浮点数

“^[A-Za-z]+$”  //由26个英文字母组成的字符串

“^[A-Z]+$”  //由26个英文字母的大写组成的字符串

“^[a-z]+$”  //由26个英文字母的小写组成的字符串

“^[A-Za-z0-9]+$”  //由数字和26个英文字母组成的字符串

“^w+$”  //由数字、26个英文字母或者下划线组成的字符串

“^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$”    //email地址

“^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$”  //url

^([-+]?[0-9]+.?[0-9]+)$                 //小数

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
验证用户密码(大于6个字符小于20、必须包含一个特殊字符  、至少包含一个数字:   (?=^.{6,20}$)(?=(.*d){1,})(?=(.*W){1,}).*

只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&',;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”   ||||  ^[u4E00-u9FA5]*$
验证Email地址:“^[-_A-Za-z0-9]+@([_A-Za-z0-9]+.)+[A-Za-z0-9]{2,3}$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”

正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,

“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”

正确格式为:“01”“09”和“1”“31”。

 

Java的正则表达式是由java.util.regexPatternMatcher类实现的Pattern对象表示经编译的正则表达式。静态的compile( )方法负责将表示正则表达式的字符串编译成Pattern对象。正如上述例程所示的,只要给Patternmatcher( )方法送一个字符串就能获取一个Matcher对象。此外,Pattern还有一个能快速判断能否在input里面找到regex

staticboolean matches(?regex, ?input)

以及能返回String数组的split( )方法,它能用regex把字符串分割开来。

只要给Pattern.matcher( )方法传一个字符串就能获得Matcher对象了。接下来就能用Matcher的方法来查询匹配的结果了。

boolean matches()
boolean lookingAt()
boolean find()
boolean find(int start)

matches( )的前提是Pattern匹配整个字符串,而lookingAt( )的意思是Pattern匹配字符串的开头。

find( )

Matcher.find( )的功能是发现CharSequence里的,与pattern相匹配的多个字符序列。例如:

//: c12:FindDemo.java
import java.util.regex.*;
import com.bruceeckel.simpletest.*;
import java.util.*;
publicclass FindDemo {
privatestatic Test monitor = new Test();
publicstaticvoid main(String[] args) {
Matcher m = Pattern.compile("//w+")
.matcher("Evening is full of the linnet's wings");
while(m.find())
System.out.println(m.group());
int i = 0;
while(m.find(i)) {
System.out.print(m.group() + " ");
i++;
}
monitor.expect(new String[] {
"Evening",
"is",
"full",
"of",
"the",
"linnet",
"s",
"wings",
"Evening vening ening ning ing ng g is is s full " +
"full ull ll l of of f the the he e linnet linnet " +
"innet nnet net et t s s wings wings ings ngs gs s "
});
}
} ///:~

"//w+"的意思是"一个或多个单词字符",因此它会将字符串直接分解成单词。find( )像一个迭代器,从头到尾扫描一遍字符串。第二个find( )是带int参数的,正如你所看到的,它会告诉方法从哪里开始找——即从参数位置开始查找。

相关连接:

http://blog.csdn.net/dongwujing/article/details/7668969

http://www.cnblogs.com/kkcheng/archive/2010/02/03/1662821.html

http://blog.csdn.net/allwefantasy/article/details/3136570

揭开正则表达式的神秘面纱
http://www.regexlab.com/zh/regref.htm

分享到:
评论

相关推荐

    《学习正则表达式》高清扫描版 PDF

    你是程序员?正物色一本学习正则表达式的入门图书?恭喜,《学习正则表达式》非常适合你!...读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法......展开全部内容介绍

    java常用正则表达式(转)

    NULL 博文链接:https://xurichusheng.iteye.com/blog/976251

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    常用正则表达式

    常用正则表达式: 验证身份证号 验证一年的12个月 匹配网址URL的正则表达式 应用:计算字符串的长度 应用:利用正则表达式分解和转换IP地址 利用正则表达式限制网页表单里的文本框输入内容 等等...

    正则表达式经典实例

    本书讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误...

    正则表达式经典实例.pdf

    本书讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误...

    正则表达式

    由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 正则表灰式的字符类 ...

    我们常用的正则表达式

    区号+座机号码+分机号码 手机(中国移动手机号码): 利用正则表达式分解和转换IP地址:等等!

    Python字符串与正则表达式学习笔记

    正则表达式3.1 正则表达式基础知识3.2 正则表达式实例 1. 数值与布尔型 数值类型 整型int 浮点型float 布尔型 True False # 查看数据类型用type() a = 1 b = 1.1 c = True d = False print(type(a),type(b),type(c)...

    适合于js和java的正则表达式

    详细的介绍js的正则表达式,和常用的应用场景

    初学者python笔记(re模块、正则表达式完全解析)

    正则表达式也内嵌在Python中,通过re模块来实现,常用方法是findall(),会将匹配到的字符串用一个列表返回 例如: 要匹配一大串字符串中的所有数字,不用for循环和If语句,用re模块一行就能实现 import re print(re....

    Regexx 【Perl兼容正则表达式的C++封装】

    PCRE是一个常用的正则表达式解析库,但直接使用该库对初学者来说确实有点困难,因此网上有人制作了一个C++的封装,人气挺高,但是原装的Regexx是基于Linux的工程,不能直接拿来在Windows下使用,作者经过一番研究,...

    实用正则表达式匹配和替换大全

    下面整理一些常用的正则表达式。 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\’...

    正则表达式 学习资料整理

    常用正则表达式 整理篇//www.jb51.net/article/17355.htm 正则表达式高级学习技巧//www.jb51.net/article/9229.htm 1.正则表达式简介 正则表达式(Regular expression,简写为Regexes)是一种用来操作和检验字符串...

    PHP一些常用的正则表达式字符的一些转换

    匹配双字节字符(包括汉字在内): [^\x00-\xff] 应用:计算字符串的长度(一个双...(.*) \/>/ 匹配首尾空格的正则表达式: (^\s*)|(\s*$) 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个

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

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

    常用工具合集(包括汉字转拼音工具、常用数据格式相互转换工具、尺寸相关的工具、加密工具、文件相关的工具、字体相关的工具).zip

    常用工具合集(包括汉字转拼音工具、常用数据格式相互转换工具、尺寸相关的工具、加密工具、文件相关的工具、字体相关的工具、图像相关的工具、键盘工具类、LBS工具类、网络相关工具、通知相关工具、正则表达式工具...

    ldif-preg_replace:类似于sed的修改和使用正则表达式转换LDIF文件-开源

    这个小的perl工具使您可以使用正则表达式的功能轻松地修改LDIF文件。 与sed命令不同,此工具可以很好地处理LDIF文件,支持base64编码/解码和换行/折叠。 它可以在管道中使用,使其成为自动化的理想选择,并增强了...

    自动机:用于模拟有限自动机(DFA,NFA和ε-NFA)和正则表达式的库和Web应用程序

    一个用于模拟有限自动机(DFA,NFA和ε-NFA)和正则表达式的库和Web应用程序。 该项目是旨在帮助学生的工具解决了解CTH的 / 课程的测验和作业。 但是任何对自动机感兴趣的人都可以使用。 欢迎捐款! 如果发现错误...

Global site tag (gtag.js) - Google Analytics