[正则表达式]Java

一、什么是正则表达式\n正则表达式是一组公式,是描述一种字符串匹配的格式。\n\n正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。。我们可以调用String中的matches(String regex)方法,判断字符串是否匹配给定的正则表达式,返回布尔值。\n\n示例:\n\nstr.matches("[a-z]") 表示字符串是否是小写字母a-z中的某一字母\n\n二、正则表达式元字符\n正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,"\\d" 表示数0~9中的任何一个,"\\d" 就是元字符。\n\n元字符\t正则表达式中的写法\t意义\n.\t"."\t代表任意一个字符\n\\d\t"\\d"\t代表09的任何一个数字\n\D\t"\\D"\t代表任何一个非数字字符\n\s\t"\\s"\t代表空白字符,如“\t”、“\n”\n\S\t"\\S"\t代表非空白字符\n\w\t"\\w"\t代表可用做标识符的字符,但不包括“$”\n\W\t"\\W"\t代表不可用于标识符的字符\n\p{Lower}\t\p{Lower}\t代表小写字母a~z\n\p{Upper}\t\p{Upper}\t代表大写字母A~Z\n\p{ASCII}\t\p{ASCII}\tASCII字符\n\p{Alpha}\t\p{Alpha}\t字母字符\n\p{Digit}\t\p{Digit}\t十进制数字,即0~9\n\p{Alnum}\t\p{Alnum}\t数字或字母字符\n\p{Punct}\t\p{Punct}\t标点符号:!"#$%’()+,-./:;\u003C=>?@[\]^_`{|}\n\p{Graph}\t\p{Graph}\t可见字符:[\p{Alnum\p{Punct}}]\n\p{Print}\t\p{Print}\t可打印字符:[\p{Graph}\X20]\n\p{Blank}\t\p{Blank}\t空格或制表符:[\t]\n\p{Cntrl}\t\p{Cntrl}\t控制字符:[\x00-\x1F\x7F]\n三、正则表达还是元字符使用方法\n在正则表达式中可以使用方括号括起来若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。\n\n例如,reg=“[abc]4”,这样字符串“a4”、“b4”、·“c4”都是和正则表达式匹配的字符串。除此之外还有很多格式。如:\n\n[^456]:代表4、5、6之外的任何字符。\n\n[a-r]:代表ar中的任何一个字母。\n\n[a-zA-Z]:可表示任意一个英文字母。\n\n[a-e[g-z]]:代表ae,或g~z中的任何一个字母(并运算)。\n\n[a-o&&[def]]:代表字母d、e、f(交运算)。\n\n[a-d&&[^bc]]:代表字母a、d(差运算)。\n\n  (ab)|(13)|(50):代表”ab”、”13”、”50”中任意一值。\n\n四、正则表达式限定符\n在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,"A*"代表A可在字符串中出现0次或多次。\n\n限定修饰符\t意义\t示例\n?\t0次或1次\tA?\n*\t0次或多次\tA*\n+\t一次或多次\tA+\n{n}\t正好出现n次\tA{2}\n{n,}\t至少出现n次\tA{3,}\n{n,m}\t出现n次到m次\tA{2,6}\n正则表达式实例使用正则表达式来判断指定的变量是否是合法的E-mail地址。\n\n设计思路:\n\n[邮箱名]     @  [服务器名称]  [中间名] .  [后缀]\n合法字符串@  合法字符串. 字符串(可无). 字符串(最大三个字符)\n\n  \\w+         @    \\w+       \\.\\w{2,3}   \\.      \\w{2,3}\n\n五、正则表达式示例\n验证字符串是不是大陆手机号,大陆手机号是11位,前三位分别是130、131、132、133、134、134、135、136、137、138、139、150、151、152、153、155、156、157、158、159、180、185、186、187、188、189等\n\n代码:\n\nimport java.util.Scanner;\n \npublic class lianxi {\n \n\tpublic static void main(String[] args) {\n \n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(“请输入手机号:”);\n\t\tString regex = “(13[0-9]|15[012356789]|18[056789])\\d{8}”;\n \n\t\twhile (true) {\n\t\t\tString phone = sc.nextLine();\n\t\t\tif (phone.matches(regex)) {\n\t\t\t\tSystem.out.println(“您输入的是手机号”);\n\t\t\t} else {\n\t\t\t\tSystem.out.println(“您输入的不是手机号”);\n\t\t\t}\n\t\t}\n\t}\n}\n 运行结果:\n\n\n\n \n\n

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code Writers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值