多语言展示
当前在线:1493今日阅读:168今日分享:49

android 正则表达式怎么用

当初学习编译原理的时候根本不知道学的东西有什么用,就比如说正则表达式吧,当初学的一头雾水,也不知道干嘛用的。现在在我们使用的软件或者网站我们在注册账号或者登陆的时候都会有格式限制。我们总会遇到一些字符匹配的时候,最典型的就是验证用户输入的邮箱、手机号以及密码的字符限制以及数量限制是否符合格式规范。那我们在做这些匹配的时候,就需要使用正则表达式。
工具/原料

Android中使用正则,只要3句话:Pattern pattern = Pattern.compile(regex),regex表示的是正则表达式 Matcher matcher = pattern.matcher(string),string表示的是需要匹配的字符 matcher.matcher(),这边就是直接返回一个boolean值,来表示正确与否 用这三句话就可以判断字符串string是否满足正则表达式regex的格式规范。

方法/步骤
1

String str='liujc@yahoo.com.cn'; Pattern pattern = Pattern.compile('^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'); Matcher matcher = pattern.matcher(str); System.out.println(matcher.matches());

2

以下是一些常用正则表达式:匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}         如:匹配形式如 或 匹配中国邮政编码:[1-9]\d{5}(?!\d)匹配身份证:\d{15}|\d{18}匹配ip地址:\d+\.\d+\.\d+\.\d+

3

匹配特定数字:^[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)整数或者小数:^[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+$'。

4

验证用户密码:'^[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}$'正确格式为:'XXX-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'。

5

匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,'aa').length;}匹配空行的正则表达式:\n[\s| ]*\r匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>匹配首尾空格的正则表达式:(^\s*)|(\s*$)匹配特定字符串:^[A-Za-z]+  //匹配由26个英文字母组成的字符串^[A-Z]+  //匹配由26个英文字母的大写组成的字符串^[a-z]+  //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+  //匹配由数字和26个英文字母组成的字符串^\w+  //匹配由数字、26个英文字母或者下划线组成的字符串

注意事项

reg代表就是你要写的正则的规则!让后就会返回一个boolean值,代表该字符串是否符合你写的正则规则!

推荐信息