java零基础知识回顾(正则表达式)
来源:互联网 发布:银河证券手机交易软件 编辑:程序博客网 时间:2024/06/05 20:19
java零基础知识回顾(正则表达式)
下面是正则表达式的随堂笔记。
正则表达式:符合一定规则的表达式。作用是用于专门操作字符串,可以简化对字符串的复杂操作。
特点:用一些特定的符号来表示一些代码操作,这样就可以简化书写。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
总结:到底用四种功能中的哪个呢?
思路:
1,如果只想知道该字符是对是错,使用匹配。
2,想要将已有的字符串变成另一个字符串,使用替换功能。
3,想要按照自定的方式将字符串变成多个字符串,用切割,获取规则以外的字符。
4,想要拿到符合要求的字符串字串,用获取,获取符合规则的字串。
正则表达式的操作功能:
1.匹配:
String Matches()
public static void checkTel()
{
String Tel = "13592235644";
String reg = "1[358]\\d{3-9}";
System.out.println(Tel.matches(reg));
}
2.切割:
String split()
public static void splitDemo(String str,String teg)
{
String[] arr = str.split(teg);
for(String s : arr)
{
System.out.println(s);
}
}
class RegexDomo
{
public static void main(String[] args)
{
splitDemo("zhangsan,lisi,wangwu",",");
splitDemo("zhangsan lisi wangwu"," +");
//+表示出现一次或多次。
splitDemo("c:\\abc\\a.txt","\\\\");
//转义字符
splitDemo("erkktyqqquizzzzzo","(.)\\1+");
//按照叠词切割,就是后一个和前一个是一样的。
/*
为了让规则的结果可以重用,可以将规则用()封装成组,组都有编号。
从1开始,想要使用已有的组可以通过\n(n就是租的编号)的形式来获取。
((())()) 有几组就数有几个左括号,第几组也是数左括号,第几个就是第几组。
*/
String str = "wer13899800000ty123456754uioo";
//将字符串中的数字替换成#。
replaceAllDemo(str,"\\d{5,}","#");
String str1 = "erkktyqqquillllojl";
//将字符串中的叠词替换成单个字母。zzzz->z
replaceAllDemo(str1,"(.)\\1+","$1");
//$1表示获取第一个组的内容
}
}
3. 替换:
String replaceAll(String regex,String str)
public static void replaceAllDemo(String str,String reg,String newStr)
{
str = str.replaceAll(reg,newStr);
System.out.println(str);
}
4.获取:
Pattern.compile(Regex) , Matcher()
import java.util.regex.*;
//需要用到正则表达式包
class RegexDemo2
{
public static void getDemo()
{
String str = "ming tian jiu yao fang jia le ,da jia";
String reg = "\\b[a-z]{3}\\b";
// '\b'表示单词边界。
//取出3个字符组成的单词。
//将规则封装成对象
Pattern p = Pattern.compile(reg);
//让正则对象和要作用的字符串相关联。
Matcher m = p.matcher(str);
//m.find();//讲规则作用到字符串上,并进行符合规则的字串查找。
//System.out.println(m.group());//用于获取匹配后的结果。
while(m.find)
{
System.out.println(m.group());
}
}
}
*********************三个练习*******************
import java.util.regex.*;
import java.util.*;
class RegexDemo
{
public static void main(String[] args)
{
test_1();
regexTest_2();
checkMail();
}
//需求:将下列字符串变成:我要学编程。
public static void test_1()
{
String str = "我我...我我...我要..要要....学学.....学学..编编编...程...程程..程";
/*
思路:需要将已有字符串变成另一个字符串,使用替换功能。
步骤:1,将所有.去掉。
2,将多个重复的字变成一个字。
*/
str = str.replaceAll("\\.+","");
//System.out.println(str.replaceAll("(我)\\1+(要)\\2+(学)\\3+(编)\\4+(程)\\5+","$1$2$3$4$5"));
System.out.println(str);
String str1 = str.replaceAll("(.)\\1+","$1");
System.out.println(str1);
}
//需求2:将ip地址进行地址段顺序排序。
public static void regexTest_2()
{
String str = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";
str = str.replaceAll("(\\d+)","00$1");
System.out.println(str);
str = str.replaceAll("0*(\\d{3})","$1");
System.out.println(str);
String[] arr = str.split(" +");
TreeSet<String> ts = new TreeSet<String>();
for(String s : arr)
{
ts.add(s);
}
for(String s : ts)
{
System.out.println(s.replaceAll("0*(\\d+)","$1"));
}
}
//需求3:对邮件地址进行校验
public static void checkMail()
{
String mail = "1@1.cn.com";
boolean b = mail.matches("\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,3}");
System.out.println(b);
}
}
下面是正则表达式的随堂笔记。
正则表达式:符合一定规则的表达式。作用是用于专门操作字符串,可以简化对字符串的复杂操作。
特点:用一些特定的符号来表示一些代码操作,这样就可以简化书写。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
总结:到底用四种功能中的哪个呢?
思路:
1,如果只想知道该字符是对是错,使用匹配。
2,想要将已有的字符串变成另一个字符串,使用替换功能。
3,想要按照自定的方式将字符串变成多个字符串,用切割,获取规则以外的字符。
4,想要拿到符合要求的字符串字串,用获取,获取符合规则的字串。
正则表达式的操作功能:
1.匹配:
String Matches()
public static void checkTel()
{
String Tel = "13592235644";
String reg = "1[358]\\d{3-9}";
System.out.println(Tel.matches(reg));
}
2.切割:
String split()
public static void splitDemo(String str,String teg)
{
String[] arr = str.split(teg);
for(String s : arr)
{
System.out.println(s);
}
}
class RegexDomo
{
public static void main(String[] args)
{
splitDemo("zhangsan,lisi,wangwu",",");
splitDemo("zhangsan lisi wangwu"," +");
//+表示出现一次或多次。
splitDemo("c:\\abc\\a.txt","\\\\");
//转义字符
splitDemo("erkktyqqquizzzzzo","(.)\\1+");
//按照叠词切割,就是后一个和前一个是一样的。
/*
为了让规则的结果可以重用,可以将规则用()封装成组,组都有编号。
从1开始,想要使用已有的组可以通过\n(n就是租的编号)的形式来获取。
((())()) 有几组就数有几个左括号,第几组也是数左括号,第几个就是第几组。
*/
String str = "wer13899800000ty123456754uioo";
//将字符串中的数字替换成#。
replaceAllDemo(str,"\\d{5,}","#");
String str1 = "erkktyqqquillllojl";
//将字符串中的叠词替换成单个字母。zzzz->z
replaceAllDemo(str1,"(.)\\1+","$1");
//$1表示获取第一个组的内容
}
}
3. 替换:
String replaceAll(String regex,String str)
public static void replaceAllDemo(String str,String reg,String newStr)
{
str = str.replaceAll(reg,newStr);
System.out.println(str);
}
4.获取:
Pattern.compile(Regex) , Matcher()
import java.util.regex.*;
//需要用到正则表达式包
class RegexDemo2
{
public static void getDemo()
{
String str = "ming tian jiu yao fang jia le ,da jia";
String reg = "\\b[a-z]{3}\\b";
// '\b'表示单词边界。
//取出3个字符组成的单词。
//将规则封装成对象
Pattern p = Pattern.compile(reg);
//让正则对象和要作用的字符串相关联。
Matcher m = p.matcher(str);
//m.find();//讲规则作用到字符串上,并进行符合规则的字串查找。
//System.out.println(m.group());//用于获取匹配后的结果。
while(m.find)
{
System.out.println(m.group());
}
}
}
*********************三个练习*******************
import java.util.regex.*;
import java.util.*;
class RegexDemo
{
public static void main(String[] args)
{
test_1();
regexTest_2();
checkMail();
}
//需求:将下列字符串变成:我要学编程。
public static void test_1()
{
String str = "我我...我我...我要..要要....学学.....学学..编编编...程...程程..程";
/*
思路:需要将已有字符串变成另一个字符串,使用替换功能。
步骤:1,将所有.去掉。
2,将多个重复的字变成一个字。
*/
str = str.replaceAll("\\.+","");
//System.out.println(str.replaceAll("(我)\\1+(要)\\2+(学)\\3+(编)\\4+(程)\\5+","$1$2$3$4$5"));
System.out.println(str);
String str1 = str.replaceAll("(.)\\1+","$1");
System.out.println(str1);
}
//需求2:将ip地址进行地址段顺序排序。
public static void regexTest_2()
{
String str = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";
str = str.replaceAll("(\\d+)","00$1");
System.out.println(str);
str = str.replaceAll("0*(\\d{3})","$1");
System.out.println(str);
String[] arr = str.split(" +");
TreeSet<String> ts = new TreeSet<String>();
for(String s : arr)
{
ts.add(s);
}
for(String s : ts)
{
System.out.println(s.replaceAll("0*(\\d+)","$1"));
}
}
//需求3:对邮件地址进行校验
public static void checkMail()
{
String mail = "1@1.cn.com";
boolean b = mail.matches("\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,3}");
System.out.println(b);
}
}
0 0
- java零基础知识回顾(正则表达式)
- Java基础知识回顾--正则表达式
- java零基础知识回顾(static小结)
- java零基础知识回顾(String)
- java零基础知识回顾(多态)
- java零基础知识回顾(泛型)
- java零基础知识回顾(集合小结)
- java零基础知识回顾(反射)
- java零基础知识回顾(io简单总结)
- java零基础知识回顾(重载与重写)
- java零基础知识回顾(单例设计模式)
- JS 正则表达式基础知识详解与回顾
- java 正则表达式基础知识
- Java正则表达式基础知识
- Java基础知识-正则表达式
- Java基础知识:正则表达式
- Java基础回顾 : 正则表达式
- JavaScript中正则表达式(零宽度正回顾后发断言)
- nftw遍历目录树
- Unicode和Python的中文处理(收藏)
- hdu 5179 数位dp
- 机器学习入门:线性回归及梯度下降
- hadoop容灾能力测试
- java零基础知识回顾(正则表达式)
- MemcachedUtil 工具类
- maven项目修改jsp代码不用打包就能运行
- java零基础知识回顾(重载与重写)
- 将编写的脚本加入系统路径内,却无法使用的问题
- java零基础知识回顾(单例设计模式)
- Activity页面finish栈管理
- oracle 递归查询
- Maven用来做什么?——Maven学习笔记(一)