java中正则表达式如何使用?比如判断一个字符串是不是满足某种格式,给个详细点的例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中正则表达式如何使用?比如判断一个字符串是不是满足某种格式,给个详细点的例子相关的知识,希望对你有一定的参考价值。
按照你的要求给出的Java正则表达式的例子如下
//下面这个正则表达式匹配不能以.css,.html,.js,.json或者.xml结尾的字符串import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CC
public static void main(String[] args)
String s="xxxx.js.jss";//目标字符串
String regex="((?!\\\\.((css)|(html)|(js)|(json)|(xml))$).)+";//正则表达式
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
if(m.matches())
System.out.println("匹配");
else
System.out.println("不匹配");
运行结果
匹配
追问我把目标字符串换了为什么还是打印匹配?
追答只要不是以.css,.html,.js,.json或者.xml结尾的字符串都会匹配
参考技术A 正则 的话 不是 不是一两句 就能告诉你的 需要学习个 两天. 基本概念就是一些格式. 理解有点小难度.给你个例子看看吧
String st = "15XXXXXXXXX";
String st1 = st;
String regex2 = "1[538]\\d9"; //总共规定了 11位数字. 开头第一个 数字必须是1第二个数字 5 3 8 都行 剩下的 9个数字 随便. 但必须是数字
Pattern p = Pattern.compile(regex2);
Matcher m = p.matcher(st1);
急求一个JAVA中判断用户输入的数字是一个合法的电话号码的正则表达式,包括住宅电话与移动电话。
// TODO : 用正则表达式判断一个字符串中是否为电话号码,--无误格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXXString s="333212";
Pattern p=Pattern.compile("^(\(\d3:4\)|\d3:4-)?\d7:8$");
Matcher m=p.matcher(s);
System.out.println(m.matches());
/**
* 考证数字:^[0-9]*$
考证n位的数字:^\dn$
考证至多n位数字:^\dn:$
考证m-n位的数字:^\dm: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]*$
考证非负整数(正整数 + 0) ^\d+$
考证非正整数(负整数 + 0) ^((-\d+)|(0+))$
考证长度为3的字符:^.3$
考证由26个英文字母组成的字符串:^[A-Za-z]+$
考证由26个大写英文字母组成的字符串:^[A-Z]+$
考证由26个大写英文字母组成的字符串:^[a-z]+$
考证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
考证由数字、26个英文字母恐怕下划线组成的字符串:^\w+$
考证用户密码:^[a-zA-Z]\w5:17$无误格式为:以字母开头,长度在6-18之间,只能包罗字符、数字和下划线。
考证是否含有 ^%&rev;':;=?$"等字符:[^%&rev;':;=?$\x22]+
考证汉字:^[\一-\龥]:0:$
考证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
考证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&rev;=]*)?$;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
考证电话号码:^(\(\d3:4\)|\d3:4-)?\d7:8$:--无误格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
考证身份证号(15位或18位数字):^\d15|\d18$
考证一年的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。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$
*/ 参考技术A 手机号码
^0?\\d11$
电话号码
^\\(?\\d3,4[-\\)]?\\d7,8$ 参考技术B \\d+-(\\d+)* 区号-号码。
(\\d+)* 移动的
我也是初学者。不怎么懂。你看看吧
以上是关于java中正则表达式如何使用?比如判断一个字符串是不是满足某种格式,给个详细点的例子的主要内容,如果未能解决你的问题,请参考以下文章