java正则表达式2 -- 匹配、切割、查找

 1 import java.util.Arrays;
 2
 3 /*
 4 正则表达式的作用:
 5
 6 1 匹配
 7
 8 2 切割
 9
10 3 替换
11
12  * */
13 public class Demo1 {
14     public static void main(String[] args) {
15         isPhone("0314-16610306");
16         cutStr1("火      影   忍           者");
17         cutStr2("大家家明天天玩的的的的的开心");
18         replaceSame("大家家明天天玩的的的的的开心");
19     }
20
21     //匹配固话: 区号-主机号   区号:首位为0,长度为3-4位  主机号:首位不能为0,长度7-8位
22     public static void isPhone(String phone){
23         System.out.println(phone.matches("0\\d{2,3}-[1-9]\\d{6,7}")?"合法固话    ":"非法固话");
24     }
25
26     //切割 通过split
27     //需求:按照空格切割字符串 = 火      影   忍           者
28     public static void cutStr1(String str){
29         String[] splits = str.split(" +");
30         System.out.println("数组元素:" + Arrays.toString(splits));
31     }
32     //需求:按照叠词分割字符串=大家家明天天玩的的的的的开心
33     public static void cutStr2(String str){
34         String[] splits = str.split("(.)\\1+");
35         System.out.println("数组元素:" + Arrays.toString(splits));
36     }
37
38     //替换
39     //字符串去重:大家家明天天玩的的的的的开心
40     public static void replaceSame(String str){
41         //把后几号替换成****
42         String s = "大家家明13211525558天天玩18356457889的的的的的开心";
43         System.out.println("被替换后的内容" + s.replaceAll("1[3478]\\d{9}+", "****"));
44
45         //去重并替换
46         System.out.println(str.replaceAll("(.)\\1+", "$1"));
47         //(.)任意字字符成组,\\1捕获1次;叠词,$1得到1组, 取前面的组1次或多次
48     }
49 }

运行结果:

时间: 2024-10-25 06:19:27

java正则表达式2 -- 匹配、切割、查找的相关文章

java 正则表达式获取匹配和非获取匹配

1 package test1; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class TestExp { 7 /** 8 * 9 * 在使用正则表达式的时候,我们经常会使用()把某个部分括起来,称为一个子模式. 子模式有Capturing和Non-Capturing两种情况. 10 * Capturing指获取匹配 : 11 * 是指系统会在幕后将所有的子模式匹配结果保存起来

java正则表达式取出匹配字符串

import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main( String args[] ){ // 按指定模式在字符串查找 String line = "This order was placed for QT3000! OK?"; String pattern = "(\\D*)(\\d+)(.*)&q

Java正则表达式匹配多行

默认情况下.*中的.只能匹配出\n以外的字符,如果遇到要匹配的字符串包含回车换行符(多行),则正则表达式遇到换行符后会停止,导致包含回车换行符的串不能正确匹配,解决的办法是: 1.使用Pattern和Matcher对象 设置Pattern模式为:Pattern.DOTALL 2.使用String.replaceAll() 正则表达式写法: String reg = "(?s)'.*'"; 下面是一个包含回车换行字符的正则表达式替换处理例子. static String teststr

java正则表达式 前后查找

最近做软件 需要截取  一个 类似html标签内部的文本 采用了传统的方法 比如  <ming>(.*?)</ming> 来匹配字符串得出 <ming>sdfdfsdfdf</ming>  然后再用字表达式替换的功能 最近看了一本正则表达的书 发现java正则表达式是支持 前后查找的 效果如下; 直接可以一步获取 想要的值 下面列举出 前后查找的操作符: (?=)  向前查找 (?!)   负向前查找 (?<=) 向后查找 (?<!) 负向后查找

Java 正则表达式功能及应用

正则表达式,就是用某种模式去匹配一类字符串的一个公式,正则表达式由一些普通字符和一些元字符(metacharacters)组成.普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,不管是.Net平台还是Java平台,正则表达式表达的意思都是一样的,下面我们主要分析Java正则表达式中的功能和具体应用,希望文章对您有所帮助,仅供参考. 自从jdk1.4推出java.util.regex包,就为我们提供了很好的Java正则表达式应用平台,因为Java正则表达式是一个很庞杂的体系. \\ 反斜杠

Java正则表达式详解(三)

正则表达式引擎是一种可以处理正则表达式的软件.许多语言都支持正则表达式处理文本,例如PHP.Java和JavaScript,一些文本编辑器用正则表达式实现高级搜索-替换功能.Java中加入了java.util.regex包提供对正则表达式的支持,而且Java.lang.String类中的函数也是调用的正则表达式来实现的.接下来将讲解着两方面的使用 使用String类的匹配功能:匹配.拆分和替换 使用正则表达式库java.util.reg:查找.提取.分割.替换 1.使用String类的匹配功能

java正则表达式匹配所有数字

用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个及多个数字: \. :匹配小数点: ? :紧跟在 \. 之后,表明可以匹配零个或一个小数点: 0 :匹配一个数字0: )其中的 [1-9]\d*\.?\d* 用以匹配诸如:1.23.34.0.56.78 之类的非负的整数和浮点数: 其中的 0\.\d*[1-9] 用以匹配诸如:0.1.0.23.0.

Java 正则表达式 向前、向后匹配

//向后匹配 String a = "I paid $90 for 10 oranges, 12 pears and 8 apples. I saved $5 on "; Pattern p = Pattern.compile("(?<=\\$)\\d+"); Matcher m = p.matcher(a); while (m.find ()) { String group = m.group (); System.out.println (group);

java正则表达式(email匹配)

转http://blog.csdn.net/marila4720/article/details/8728840 package URL;import java.util.regex.Pattern;import java.util.regex.Matcher; public class Test1{   public static void main(String[]args){    String regex = "\\[email protected]\\w+\\.(com\\.cn)|\