java正则表达式非
① java中什么是正则表达式
正则表达式 就是将一个类型的数据 按照一定方式 写成正则表达式的形式 这样可以辨别数据是否符合这一类型的数据 比如我们的身份证号码 就是有一定的规则的 这样我们写一个 正则表达式 和别人输入的身份证号码 比对 如果符合这个正则表达式的规则 就是身份证号码
② java正则表达式是什么
在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
(2)java正则表达式非扩展阅读:
正则表达式的特点是:
1、灵活性、逻辑性和功能性非常强;
2、可以迅速地用极简单的方式达到字符串的复杂控制。
3、对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到着名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
③ Java正则表达式如何表示否定
正则表达式在[ ]内使用^可以表示否定,但是这个否定指定是非[ ]内的任一字符,而不是字符串
比如[^abc]+,这样一个正则匹配的是:非a非b且非c的一个或多个字符。匹配1、34、dd、f、sd12……,不能匹配 abc、a11、ab32、abd……
如果想表达 非abc,但是abd、abe、bcd等可以匹配,在正则中是没有类似 !abc 这样的写法的。只能通过其他方式去变通的匹配,比如写成[^a].{2}|a[^b].|ab[^c]。
以上 针对所有语言的正则表达式写法,java在内。
④ Java正则表达式问题
\\D是匹配一个非数字,\\D*是匹配0个或多个非数字,尽可能多,(\\D*)是将匹配到的所有非数字捕获到分组1以供需要时访问。
\\d是匹配一个数字,\\d+是匹配1个或多个数字,尽可能多,(\\d+)是将匹配到的所有数字捕获到分组2以供需要时访问。
.是匹配任意一个字符,.*是匹配0个或多个任意字符,尽可能多,(.*)是将匹配到的多个任意字符捕获到分组3以供需要时访问。
m.group(下标)是访问上面捕获到的分组,下标0对应整个捕获,下标1对应捕获到的分组1,下标2对应捕获到的分组2,以此类推。
所以,m.group(0)就是整个字符串,m.group(1)就是3000前面的所有字符,m.group(2)就是3000,m.group(3)就是3000后面的所有字符。
⑤ java 正则表达式是什么
不同情况下的正则表达式:
匹配首尾空格的正则表达式:(^s*)|(s*$)。
匹配html标签的正则表达式:<(.*)>(.*)</(.*)>|<(.*)/>。
配空行的正则表达式: [s| ]* 。
整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$。
只能输入数字:"^[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+)*$"。
验证一年的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]。
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){returnthis.replace(/[^x00-xff]/g,"aa").length;}。
⑥ java正则表达式,如何表示一个非某个字符的匹配
在方括号内用^符号表示排除某个字符,使用示例如下:
publicstaticvoidmain(String[]args){
Stringregex="[^a]*";//匹配一个不包含字母a的字符串
booleanhasA="abcd".matches(regex);//结果为false
System.out.println(hasA);
hasA="bcd".matches(regex);//结果为true
System.out.println(hasA);
}
注意:如果不在方括号内使用表示匹配输入字符串的开始位置。
⑦ java 正则表达式截取非数字
如果把数字截取掉后只是字母那就可以这样办:
匹配字母:[a-zA-z]*
意思是字母的组合出现一次或两次;
如果后面的不仅是字母还有别的东西的话 ,那就截取前面数字好了,
匹配不是数字,-,和小数点的组合就好了,如下:
[^\\d\\-\\.]*
希望对你有帮助:)
⑧ java中非中文的正则表达式是什么
非中文 [^\u4e00-\u9fa5]
中文的正则表达式是[\u4e00-\u9fa5]
其他正则表达式
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
以上在java中使用时用双引号将它们括起来就可以了
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9] (单个数字)
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
以上在java中使用时除了将它们用双引号括起来以为,还须加\转义,例如\d的实际用法是”\\d“
POSIX 字符类(仅 US-ASCII)
\p{Lower} 小写字母字符:[a-z]
\p{Upper} 大写字母字符:[A-Z]
\p{ASCII} 所有 ASCII:[\x00-\x7F]
\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]
\p{Digit} 十进制数字:[0-9]
\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]
\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]
\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Blank} 空格或制表符:[ \t]
\p{Cntrl} 控制字符:[\x00-\x1F\x7F]
\p{XDigit} 十六进制数字:[0-9a-fA-F]
\p{Space} 空白字符:[ \t\n\x0B\f\r]
以上字符串要加双引号和反斜杠号Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
用法也是将它们用双引号括起来
Logical 运算符
XY X 后跟 Y
X|Y X 或 Y
(X) X,作为捕获组
用法也是将它们用双引号括起来
注意:正则表达式则有在方法参数明确是以正则表达式为参考时才使用,否则如果方法参数是普通字符序列时是不起作用的。
(引自网络和书籍)
⑨ java正则表达式判断一个字符串是否是非负整数
满足以下两个表达式之一都可以:
^d+$或^[1-9]d*|0$
示例:
importjava.util.regex.*;
classRegexExample1{
publicstaticvoidmain(Stringargs[]){
Stringcontent="987546";
Stringpattern="^d+$";
booleanisMatch=Pattern.matches(pattern,content);
System.out.println("字符串中是否是非负整数?"+isMatch);
}}
⑩ java正则表达式
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
Java正则表达式和Perl的是最为相似的。
java.util.regex包主要包括以下三个类:
Pattern类:
pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。
Matcher类:
Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matcher也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。
PatternSyntaxException:
PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。