java中用正则表达式匹配字符
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String regEx="\\d{6}"; //正则表达式
String temp="/class/200809/ddddd12456789.htm";//需要替换的字符
Pattern pat=Pattern.compile(regEx);
Matcher mat=pat.matcher(temp);
然后mat 里有很多方法
Matcher appendReplacement(StringBuffer sb, String replacement)
实现非终端添加和替换步骤。
StringBuffer appendTail(StringBuffer sb)
实现终端添加和替换步骤。
int end()
返回最后匹配字符之后的偏移量。
int end(int group)
返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。
boolean find()
尝试查找与该模式匹配的输入序列的下一个子序列。
boolean find(int start)
重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。
String group()
返回由以前匹配操作所匹配的输入子序列。
String group(int group)
返回在以前匹配操作期间由给定组捕获的输入子序列。
int groupCount()
返回此匹配器模式中的捕获组数。
boolean hasAnchoringBounds()
查询此匹配器区域界限的定位。
boolean hasTransparentBounds()
查询此匹配器区域边界的透明度。
boolean hitEnd()
如果匹配器执行的最后匹配操作中搜索引擎遇到输入结尾,则返回 true。
boolean lookingAt()
尝试将从区域开头开始的输入序列与该模式匹配。
boolean matches()
尝试将整个区域与模式匹配。
Pattern pattern()
返回由此匹配器解释的模式。
static String quoteReplacement(String s)
返回指定 String 的字面值替换 String。
Matcher region(int start, int end)
设置此匹配器的区域限制。
int regionEnd()
报告此匹配器区域的结束索引(不包括)。
int regionStart()
报告此匹配器区域的开始索引。
String replaceAll(String replacement)
替换模式与给定替换字符串相匹配的输入序列的每个子序列。
String replaceFirst(String replacement)
替换模式与给定替换字符串匹配的输入序列的第一个子序列。
boolean requireEnd()
如果很多输入都可以将正匹配更改为负匹配,则返回 true。
Matcher reset()
重置匹配器。
Matcher reset(CharSequence input)
重置此具有新输入序列的匹配器。
int start()
返回以前匹配的初始索引。
int start(int group)
返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引。
MatchResult toMatchResult()
作为 MatchResult 返回此匹配器的匹配状态。
String toString()
返回匹配器的字符串表示形式。
Matcher useAnchoringBounds(boolean b)
设置匹配器区域界限的定位。
Matcher usePattern(Pattern newPattern)
更改此 Matcher 用于查找匹配项的 Pattern。
Matcher useTransparentBounds(boolean b)
设置此匹配器区域边界的透明度。
常用的正则表达式
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
在使用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之间,
只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&’,;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证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”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String regEx="\\d{6}"; //正则表达式
String temp="/class/200809/ddddd12456789.htm";//需要替换的字符
Pattern pat=Pattern.compile(regEx);
Matcher mat=pat.matcher(temp);
然后mat 里有很多方法
Matcher appendReplacement(StringBuffer sb, String replacement)
实现非终端添加和替换步骤。
StringBuffer appendTail(StringBuffer sb)
实现终端添加和替换步骤。
int end()
返回最后匹配字符之后的偏移量。
int end(int group)
返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。
boolean find()
尝试查找与该模式匹配的输入序列的下一个子序列。
boolean find(int start)
重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。
String group()
返回由以前匹配操作所匹配的输入子序列。
String group(int group)
返回在以前匹配操作期间由给定组捕获的输入子序列。
int groupCount()
返回此匹配器模式中的捕获组数。
boolean hasAnchoringBounds()
查询此匹配器区域界限的定位。
boolean hasTransparentBounds()
查询此匹配器区域边界的透明度。
boolean hitEnd()
如果匹配器执行的最后匹配操作中搜索引擎遇到输入结尾,则返回 true。
boolean lookingAt()
尝试将从区域开头开始的输入序列与该模式匹配。
boolean matches()
尝试将整个区域与模式匹配。
Pattern pattern()
返回由此匹配器解释的模式。
static String quoteReplacement(String s)
返回指定 String 的字面值替换 String。
Matcher region(int start, int end)
设置此匹配器的区域限制。
int regionEnd()
报告此匹配器区域的结束索引(不包括)。
int regionStart()
报告此匹配器区域的开始索引。
String replaceAll(String replacement)
替换模式与给定替换字符串相匹配的输入序列的每个子序列。
String replaceFirst(String replacement)
替换模式与给定替换字符串匹配的输入序列的第一个子序列。
boolean requireEnd()
如果很多输入都可以将正匹配更改为负匹配,则返回 true。
Matcher reset()
重置匹配器。
Matcher reset(CharSequence input)
重置此具有新输入序列的匹配器。
int start()
返回以前匹配的初始索引。
int start(int group)
返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引。
MatchResult toMatchResult()
作为 MatchResult 返回此匹配器的匹配状态。
String toString()
返回匹配器的字符串表示形式。
Matcher useAnchoringBounds(boolean b)
设置匹配器区域界限的定位。
Matcher usePattern(Pattern newPattern)
更改此 Matcher 用于查找匹配项的 Pattern。
Matcher useTransparentBounds(boolean b)
设置此匹配器区域边界的透明度。
常用的正则表达式
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
在使用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之间,
只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&’,;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证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”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?