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等。


  • 相关阅读:
    文件拖放
    有关函数传参的结构赋值的理解
    js_点击弹出图片
    js 比较网址与a链接
    css——鼠标经过按钮时样式(radial-gradient)
    文字跳动
    kafka 数据存储和发送
    kafka 消息存储分析
    Kafka 内存管理类BufferPool
    聊聊kafka-client的源码
  • 原文地址:https://www.cnblogs.com/riskyer/p/3230734.html
Copyright © 2011-2022 走看看