美文网首页
正则表达式

正则表达式

作者: 沫晴er | 来源:发表于2017-09-08 19:45 被阅读0次

    正则表达式:又称郭泽表达式 .为了验证输入内容是否符合标准而定义的一套规则.

    如果一个字符串作为正则表达式,只能匹配自身.搜索,查询,匹配,调换都用于正则表达式

    ^以什么开头         $以什么结尾

    []是一个字符  等价于 [0-9]

    {9}一共有9位 例:[0-9]{9} 有9位数字 0-9

    ^不包含字符  例:[^012]不包含0或者1或者2

    [1,4]一位到4位

    {9,}最少9位

    +{1,}最少1位    ?(0,1)0位或者1位  *(0)最少0位

    .通配所有

    \d 代表[0-9]  \w[0-9a-zA-Z_]       \ 转义字符

    正则表达式匹配手机号

    ^1[3,4,5,7,8,9]\d{9}

    匹配100..||10..||0..

    ^[1-9][0-9]{0,}|^0{1}\.[0-9]+

    匹配案例:

    boolean istag = "dabainzhenhaoo123467".matches("^[a-zA-Z]\\w{5,19}$");

    System.out.println(istag);

    搜索:

    String luhan = "鹿晗(LU HAN),1990年4月20日出生于北京海淀区,中国内地影视男演员、歌手。2008年赴韩国留学期间在明洞逛街时,被韩国SM娱乐有限公司星探发掘成为旗下练习生。2012年4月以韩国男子组合EXO/EXO-M成员正式出道,组合内担任主唱、领舞、门面担当。2015年1月,主演的首部电影《重返20岁》上映,凭借此片获第22届北京大学生电影节最受欢迎男演员奖[5]  。5月,登《福布斯》杂志中文版封面[6]  。8月,加盟综艺节目《奔跑吧兄弟第三季》[7]  。10月,主演的悬疑电影《我是证人》上映[8]  。12月,个人首张专辑《Reloaded(重启)》全球发行[9-10]  。";

    Pattern p = Pattern.compile("《.{2,10}》");

      Matcher m = p.matcher(luhan);

     while (m.find()) {

       String str = m.group();

       System.out.println(str);

       String str1 = str.substring(1,str.length()-1);

       System.out.println(str1);

     }

    案例2:

    匹配:windows98 windows2000  windows2007

     Pattern p1 = Pattern.compile("(?<=windows)(\\d{2}\\d{4})");

      Matcher m1 = p1.matcher("windows2000

     while (m1.find()) {

      String str = m1.group();

       System.out.println(str);

       String str1 = str.substring(1,str.length()-1);

       System.out.println(str);

    }

    替换

    String des = "我的电话15358479570 你的电话13648067469";

    String newDes = des.replaceAll("1[34578]\\d{9}", "电话");

    System.out.println(newDes);

    分割

    String[] dess = des.split("1[34578]\\d{9}");

    System.out.println(Arrays.toString(dess));

    1、以 $ 开始

    2、整数部分,从个位起,满 3 个数字用 , 分隔

    3、如果为小数,则小数部分长度为 2

    4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3

    public class HomeWork2 {

    public static void main(String[] args) {

    String regix1 = "\\$(0{1}|([1-9]\\d{0,2}(,\\d{3})*))(\\.\\d{2})?";

    boolean isTag = "$1,023,032".matches(regix1);

    System.out.println(isTag);

    }

    }

    String str = '我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望';

    通过正则过滤敏感词,结果为

    我*你妈哈哈背景天***哪*涯剪短发*望

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    //敏感词过滤

    public class HomeWork1 {

    public static void main(String[] args) {

    String str = "我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望";

    // 1. 匹配

    String regex = "(草|胡景涛|肉|欲)";

    // 创建一个正则模板

    Pattern p = Pattern.compile(regex);

    //编译正则

    Matcher m = p.matcher(str);

    while (m.find()) {

    String temp = m.group();

    str = str.replace(temp, getStar(temp.length()));

    }

    System.out.println(str);

    }

    static String getStar(int length) {

    String temp = "";

    for(int i = 0; i < length;i++) {

    temp+="*";

    }

    return temp;

    }

    }

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/ppsnjxtx.html