* 1,正则表达式: 符合一定规则的表达式。
* 作用:用于专门操作字符串。
* 特点:用于一些特定的符号来表示一些
代码操作,这样就简化书写。
* 学习表达式,就是学习一些特殊符号的使用。
* 好处:可以简化对符号的复杂操作。
* 弊端:符号定义越多,正则越长,阅读性差。
*
* 具体操作:
* 1,匹配: string matches()
方法。
* 2,切割:String split();
* 3,替换:String replaceAll();
* 4,
获取:将字符串中的符号规则的子串取出。
* 操作步骤:
* 1,将正则表达式封装成对象。
* 2,将正则对象和要操作的字符串相关联。
* 3,管理后
获取匹配引擎。
* 4,通过引擎将符合规则的子串进行操作,比如取出。
*/
public class RegexDemo {
public static void main(String[] args) {
//check1();
//checkSplit();
//replaceAll();
//getDemo();
//repTest();
//splRepTest();
String str="我我....要要要...努力..学.......嘻嘻xxxxi嘻...";
str=str.replaceAll("\\.+","");
System.out.println(str);
}
public static void check1()
{
String qq="1237*45";
String regex="[1-9][0-9]{4,13}";
boolean flag=qq.matches(regex);
if(flag)
{
System.out.println(qq+"---ok");
}else {
System.out.println(qq+"...不合法");
}
//手机号验证
String tel="13123456789";
String regex1="1[3658]\\d{9}";
System.out.println(tel.matches(regex1));
//
邮件地址的校验:
String mail="
abcde23sf@sina.com";
//邮箱准确校验:
String reg="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(
\\.[a-zA-Z]+){1,3}";
//reg="
\\w+@\\w+(\\.\\w+)+"; 不准确的校验;
System.out.println(mail.matches(reg));
}
public static void checkSplit()
{
String str1="abc.def.ghi.jklm.n";
String regex1="\\.";
String[] strs=str1.split(regex1);
for( String s: strs)
{
System.out.println(s);
}
String str2="abcaabbdefjjjjhiggz";
//按照叠词完成切割,为了让规则的结果被重用,
//可以将规则封装成一个组,用()完成,组的出现都有编号。
//从1开始,使用已有的组可通过 \n(n就是组的编号)来
获取。
String regex2="(.)\\1+";
String[] strs2=str2.split(regex2);
for( String s: strs2)
{
System.out.println(s);
}
}
public static void replaceAll()
{
//将重叠的词换成$. 将重叠的字符换成单个字母
String str="abcaabbdefjjjjhiggz";
String regex="(.)\\1+";
String strs=str.replaceAll(regex,"&");
System.out.println(strs);
}
public static void getDemo()
{
String str="huo qu de cao zuo,dui xiang";
String regex="
\\b[a-z]{3,}\\b";
//将规则封装成对象。
Pattern p=Pattern.compile(regex);
//正则对象与要作用的字符串相关联,
获取匹配器对象。
Matcher m=p.matcher(str);
while(m.find())
{
System.out.println(m.group());
System.out.println(m.start()+"..."+m.end());
}
}
public static void repTest()
{
String str="我我....要要要...努力..学.......嘻嘻xxxxi嘻...";
str=str.replaceAll("\\.+","");
System.out.println(str);
str=str.replaceAll("(.)\\1+","$1");
System.out.println(str);
}
public static void splRepTest()
{
String ip=" 192.0.0.1 10.40.203.1 2.45.57.9 ";
ip=ip.replaceAll("(
\\d+)","00$1");
System.out.println(ip);
ip=ip.replaceAll("0*(
\\d{3})","$1");
System.out.println(ip);
String[] strs=ip.split(" ");
TreeSet<String> ts=new TreeSet<String>();
for(String s:strs)
{
ts.add(s);
}
for(String s:ts)
{
s=s.replaceAll("0*(
\\d+)","$1");
System.out.println(s);
}
}
public static void getMail() throws Exception
{
URL url=new URL("
http://192.0.0.1:8080/myweb/mai.html");
URLConnection conn=url.openConnection();
BufferedReader bufIn=
new BufferedReader(new InputStreamReader(conn.getInputStream()));
String mailreg="
\\w+@\\w+(\\.\\w)+"; Pattern p=Pattern.compile(mailreg); String line=null; while((line=bufIn.readLine())!=null) { Matcher m=p.matcher(line); while(m.find()) { System.out.println(m.group()); } } } }
原文链接:https://www.f2er.com/regex/362235.html