Java基础之正则表达式

原创 2015年07月09日 23:43:53

Java正则表达式,主要java.util.regex.Pattern  和 java.util.regex.Matcher 这两个类提供实现:

先上例程:如下

import java.util.regex.Pattern ;
import java.util.regex.Matcher ;
public class RegexDemo03{
	public static void main(String args[]){
		String str = "1983-07-27" ;		// 指定好一个日期格式的字符串
		String pat = "\\d{4}-\\d{2}-\\d{2}" ;	// 指定好正则表达式
		Pattern p = Pattern.compile(pat) ;	// 实例化Pattern类
		Matcher m = p.matcher(str) ;	// 实例化Matcher类
		if(m.matches()){		// 进行验证的匹配,使用正则
			System.out.println("日期格式合法!") ;
		}else{
			System.out.println("日期格式不合法!") ;
		}
	}
};

字符拆分

import java.util.regex.Pattern;

public class DemoRegex001 {
	public static void main(String args[]){
		// 要求将里面的字符取出,也就是说按照数字拆分
		String str = "A1B22C333D4444E55555F" ;	// 指定好一个字符串
		String pat = "\\d+" ;	// 指定好正则表达式
		Pattern p = Pattern.compile(pat) ;	// 实例化Pattern类
		String s[] = p.split(str) ;	// 执行拆分操作
		for(int x=0;x<s.length;x++){
			System.out.print(s[x] + "\t") ;
		}
	}
}


Construct Matches
 
Characters
x The character x
\\ The backslash character
\0n The character with octal value 0n (0 <= n <= 7)
\0nn The character with octal value 0nn (0 <= n <= 7)
\0mnn The character with octal value 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh The character with hexadecimal value 0xhh
\uhhhh The character with hexadecimal value 0xhhhh
\x{h...h} The character with hexadecimal value 0xh...h (Character.MIN_CODE_POINT  <= 0xh...h <=  Character.MAX_CODE_POINT)
\t The tab character ('\u0009')
\n The newline (line feed) character ('\u000A')
\r The carriage-return character ('\u000D')
\f The form-feed character ('\u000C')
\a The alert (bell) character ('\u0007')
\e The escape character ('\u001B')
\cx The control character corresponding to x
 
Character classes
[abc] ab, or c (simple class)
[^abc] Any character except ab, or c (negation)
[a-zA-Z] a through z or A through Z, inclusive (range)
[a-d[m-p]] a through d, or m through p[a-dm-p] (union)
[a-z&&[def]] de, or f (intersection)
[a-z&&[^bc]] a through z, except for b and c[ad-z] (subtraction)
[a-z&&[^m-p]] a through z, and not m through p[a-lq-z](subtraction)
 
Predefined character classes
. Any character (may or may not match line terminators)
\d A digit: [0-9]
\D A non-digit: [^0-9]
\s A whitespace character: [ \t\n\x0B\f\r]
\S A non-whitespace character: [^\s]
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
 
POSIX character classes (US-ASCII only)
\p{Lower} A lower-case alphabetic character: [a-z]
\p{Upper} An upper-case alphabetic character:[A-Z]
\p{ASCII} All ASCII:[\x00-\x7F]
\p{Alpha} An alphabetic character:[\p{Lower}\p{Upper}]
\p{Digit} A decimal digit: [0-9]
\p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}]
\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} A visible character: [\p{Alnum}\p{Punct}]
\p{Print} A printable character: [\p{Graph}\x20]
\p{Blank} A space or a tab: [ \t]
\p{Cntrl} A control character: [\x00-\x1F\x7F]
\p{XDigit} A hexadecimal digit: [0-9a-fA-F]
\p{Space} A whitespace character: [ \t\n\x0B\f\r]
 
java.lang.Character classes (simple java character type)
\p{javaLowerCase} Equivalent to java.lang.Character.isLowerCase()
\p{javaUpperCase} Equivalent to java.lang.Character.isUpperCase()
\p{javaWhitespace} Equivalent to java.lang.Character.isWhitespace()
\p{javaMirrored} Equivalent to java.lang.Character.isMirrored()
 
Classes for Unicode scripts, blocks, categories and binary properties
\p{IsLatin} A Latin script character (script)
\p{InGreek} A character in the Greek block (block)
\p{Lu} An uppercase letter (category)
\p{IsAlphabetic} An alphabetic character (binary property)
\p{Sc} A currency symbol
\P{InGreek} Any character except one in the Greek block (negation)
[\p{L}&&[^\p{Lu}]]  Any letter except an uppercase letter (subtraction)
 
Boundary matchers
^ The beginning of a line
$ The end of a line
\b A word boundary
\B A non-word boundary
\A The beginning of the input
\G The end of the previous match
\Z The end of the input but for the final terminator, if any
\z The end of the input
 
Greedy quantifiers
X? X, once or not at all
X* X, zero or more times
X+ X, one or more times
X{n} X, exactly n times
X{n,} X, at least n times
X{n,m} X, at least n but not more than m times
 
Reluctant quantifiers
X?? X, once or not at all
X*? X, zero or more times
X+? X, one or more times
X{n}? X, exactly n times
X{n,}? X, at least n times
X{n,m}? X, at least n but not more than m times
 
Possessive quantifiers
X?+ X, once or not at all
X*+ X, zero or more times
X++ X, one or more times
X{n}+ X, exactly n times
X{n,}+ X, at least n times
X{n,m}+ X, at least n but not more than m times
 
Logical operators
XY X followed by Y
X|Y Either X or Y
(X) X, as a capturing group
 
Back references
\n Whatever the nth capturing group matched
\k<name> Whatever the named-capturing group "name" matched
 
Quotation
\ Nothing, but quotes the following character
\Q Nothing, but quotes all characters until \E
\E Nothing, but ends quoting started by \Q
 
Special constructs (named-capturing and non-capturing)
(?<name>X) X, as a named-capturing group
(?:X) X, as a non-capturing group
(?idmsuxU-idmsuxU)  Nothing, but turns match flags i d m s u x U on - off
(?idmsux-idmsux:X)   X, as a non-capturing group with the given flags i d m s u x on - off
(?=X) X, via zero-width positive lookahead
(?!X) X, via zero-width negative lookahead
(?<=X) X, via zero-width positive lookbehind
(?<!X) X, via zero-width negative lookbehind
(?>X) X, as an independent, non-capturing group

版权声明:转载注明出处

正则表达式——入门

写程序7年,从我身边接触到的人来看,相当多的程序员把正则表达式看得很高深,甚至觉得是一道不可跨越的鸿沟。有此想法的原因很简单:只是因为你没有花上几个小时的时间去学习一下正则的基础。对,只需要几个小时,...
  • sq_zhuyi
  • sq_zhuyi
  • 2013年10月18日 10:29
  • 18468

零基础正则表达式学习

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。 1.正则表达式基本语法 两个特殊的符号'...
  • chenyongkai1
  • chenyongkai1
  • 2016年07月28日 20:28
  • 451

Java与正则表达式

Java与正则表达式标签: Java基础正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法普通字符字母, 数字, 汉字, 下...
  • hanqing280441589
  • hanqing280441589
  • 2016年01月03日 07:59
  • 5184

Java基础视频教程第25天_正则表达式

一、正则表达式——特点 正则表达式:符合一定规则的表达式。 作用:用于专门操作字符串。 String 类中对正则表达式应用的其中一个方法: boolean matches(String ...
  • yc081216
  • yc081216
  • 2015年03月20日 13:15
  • 770

正则表达式基础和使用及常用表达式

何为正则表达式?正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 给定一个正则表达式和另一个字符串,我们...
  • android_cmos
  • android_cmos
  • 2016年04月03日 11:25
  • 1209

Java学习系列(二十四)Java正则表达式详解

正则表达式可以说是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换。在实例演示之前先了解一下Pattern、Matcher这两个工具类,Pattern:编译好的带匹配...
  • JAVE_LOVER
  • JAVE_LOVER
  • 2015年05月05日 17:22
  • 6400

PHP 基础知识四(正则表达式)

PHP 基础知识总结四(正则表达式) 》》》了解正则表达式的发展及相关概念 》》》了解PHP中的POSIX函数 》》》了解PHP中的PCRE函数 》》》掌握正则表达式的应用 正则表达式是一种描述字...
  • chajinglong
  • chajinglong
  • 2016年10月11日 19:20
  • 432

java正则表达式——验证字符串是否为数字

首先说一下java正则表达式的重点概念: 第一、相关类:Pattern、Matcher 第二、典型的调用顺序是 Pattern p = Pattern.compile("a*b"); Matcher...
  • Gatherfly
  • Gatherfly
  • 2015年12月21日 16:43
  • 6317

Java正则表达式的基本用法

Java正则表达式主要有两个类:Pattern和Matcher。 Pattern表示正则表达式的编译形式。 Matcher表示执行匹配操作的引擎。 下面通过几个例子展示两个类的使用方法。 ...
  • zhangzeyuaaa
  • zhangzeyuaaa
  • 2016年01月12日 15:28
  • 3379

最全的Java中正则表达式验证日期格式

转自:http://apps.hi.baidu.com/share/detail/23069031 来自:http://hi.baidu.com/xghzlg/blog/item/3188963...
  • u012830807
  • u012830807
  • 2013年12月19日 18:42
  • 15611
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java基础之正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)