“正则表达式 Pattern 类”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第200行: 第200行:
 
是否整体匹配:false
 
是否整体匹配:false
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
  

2022年11月19日 (六) 10:54的版本

https://www.bilibili.com/video/BV1Eq4y1E79W/?p=18

Pattern 对象是一个正则表达式对象。

Pattern 没有公共构造方法。

要创建一个 Pattern 对象,调用其公共静态方法,它返回一个 Pattern 对象。

该方法接受一个正则表达式作为它的第一个参数,比如:

Pattern pattern = Pattern.compile(regStr);

示例:演示 matches 方法进行整体匹配判断

示例1:

import java.util.regex.Pattern;

public class PatternMethod {

    public static void main(String[] args) {

        String content = "hello abc hello,韩顺平教育";

        String regStr = "hello";

        boolean matches = Pattern.matches(regStr, content);

        System.out.println("整体匹配=" + matches);

    }

}
整体匹配=false



示例2:

import java.util.regex.Pattern;

public class PatternMethod {

    public static void main(String[] args) {

        String content = "hello abc hello,韩顺平教育";

        String regStr = "hello.*";

        boolean matches = Pattern.matches(regStr, content);

        System.out.println("整体匹配=" + matches);

    }

}
整体匹配=true



示例3:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExp11 {

    public static void main(String[] args) {

        String content = "edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";

        /**
         * 思路:
         * 1、先确定 url 的开始部分 https:// | http://  ((http|https)://)
         * 2、确定域名的部分 ([\w-]+\.)+[\w-]+
         * 3、匹配域名后面的路径和参数  (\\/[\\w-?=&/%.#]*)?
         */
        String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身

        Pattern pattern = Pattern.compile(regStr);

        Matcher matcher = pattern.matcher(content);

        if (matcher.find()) {

            System.out.println("满足格式");

        } else {

            System.out.println("不满足格式");

        }

        System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));

    }

}
满足格式
true


示例4:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExp11 {

    public static void main(String[] args) {

        String content = "edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";

        /**
         * 思路:
         * 1、先确定 url 的开始部分 https:// | http://  ((http|https)://)
         * 2、确定域名的部分 ([\w-]+\.)+[\w-]+
         * 3、匹配域名后面的路径和参数  (\\/[\\w-?=&/%.#]*)?
         */
        String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身

        Pattern pattern = Pattern.compile(regStr);

        Matcher matcher = pattern.matcher(content);

        if (matcher.find()) {

            System.out.println("满足格式");

        } else {

            System.out.println("不满足格式");

        }

        System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));

    }

}
满足格式
是否整体匹配:true



示例5:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExp11 {

    public static void main(String[] args) {

        String content = "010http://edu.3dsmax.tech/yg/bitibiti/my6652/pc/qg/05-51/index.html#201211-1?track_id=jMc0jn-hm-yHrNfVad37YdhOUh41XYmjlss9zocM26gspY5ArwWuxb4wYWpmh2Q7doU0wLkViEhUIO1qNtukyAgake2jG1bTd23IR57XzV83E9bAXWkStcAh4j9Dz7a87ThGIqgdCZ2zpQy33a0SVNMfmJLSNnDzJ71TU68Rc-3PKE7VA3kYzjk4RrKU";

        /**
         * 思路:
         * 1、先确定 url 的开始部分 https:// | http://  ((http|https)://)
         * 2、确定域名的部分 ([\w-]+\.)+[\w-]+
         * 3、匹配域名后面的路径和参数  (\\/[\\w-?=&/%.#]*)?
         */
        String regStr = "((http|https)://)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-?=&/%.#]*)?"; //注意:[.]表示匹配就是 . 本身

        Pattern pattern = Pattern.compile(regStr);

        Matcher matcher = pattern.matcher(content);

        if (matcher.find()) {

            System.out.println("满足格式");

        } else {

            System.out.println("不满足格式");

        }

        System.out.println("是否整体匹配:" + Pattern.matches(regStr, content));

    }

}
满足格式
是否整体匹配:false


示例:

import java.util.regex.Pattern;

public class Hello {
    public static void main(String[] args) {

        String content = "I am hsp from hspedu.com.";
        String pattern = ".*hspedu.*";
        boolean isMatch = Pattern.matches(pattern, content);
        System.out.println("是否整体匹配成功:" + isMatch);

    }
}
是否整体匹配成功:true

断点调试,跟踪源代码