zoukankan      html  css  js  c++  java
  • 新发现:原来java正则表达式不写^和$也可以运行

    最近用了好多正则表达式,都是循规蹈矩的在前面加上^在后面加上$

    像这个样子"^[.]\S+$",但实际上我在eclipse和editplus下都试了一下,不加前缀和后缀也是可以的。

    代码如下

    import java.util.*;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    class Test1 
    {
    	public static void main(String[] args) 
    	{
    		String str="asdf		dsgsdf";
    		String regx="[\w]+[\s]+[\w]+";
    		Pattern pat=Pattern.compile(regx);
    		Matcher mat=pat.matcher(str);
    		boolean bool=mat.matches();
    		//String end=mat.replaceAll("");
    		System.out.println(bool);
    		
    	}
    }
    

    运行结果是true。

    这样写的话,运行也是true

    class Test1 
    {
    	public static void main(String[] args) 
    	{
    		String str="asdf		dsgsdf";
    		String regx="\w+\s+\w+";
    		Pattern pat=Pattern.compile(regx);
    		Matcher mat=pat.matcher(str);
    		boolean bool=mat.matches();
    		//String end=mat.replaceAll("");
    		System.out.println(bool);
    		
    	}
    }

    所以,在以上这种情况下,不加[ ]和()是没有任何问题的。当然,加上也是没有问题的。。

    至于为啥都要加两个反斜线\,首先,w匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

    单纯的w,java是识别不出这个转义的,反斜线本身需要再转义一下,这样java就能识别出这个转义序列了。

    所以,在java中必须要写成\w,\s等。


  • 相关阅读:
    Java基础之内部类介绍
    Java基础之泛型的使用
    Zookeeper的ZAB协议
    ssm框架整合快速入门
    maven创建web项目
    Shiro快速入门
    工作流Activiti新手入门学习路线整理
    Bootstrap-table实现动态合并相同行(表格同名合并)
    Bootstrap-datetimepicker日期插件简单使用
    java web定时任务---quartz
  • 原文地址:https://www.cnblogs.com/riskyer/p/3230734.html
Copyright © 2011-2022 走看看