zoukankan      html  css  js  c++  java
  • java 和 JS(javaScript)中的反斜杠正则转义

    首先说下为什么要转义。在正则中有些字符有特殊含义的,

    比方说

    * 可以前一个子表达式的任意次

    . 表示除“ ”之外的任何单个字符

    + 表示前一子表达式的一次或多次

    等。

    而在有些情况下,需要正则验证这些字符,比方说要验证加减乘除四个运算符号,为了告诉编译器,你要验证的是一个字符而不是正则表达式,就要对这些有特殊含义的字符进行转义,这样就有了转义这一操作。

    在java 和javascipt中,都是用反斜杠“”进行转义,然后两种语言的用法不尽相同,下面举例说明:

    1. Java中转义字符的使用

    java 中正则 一个反斜杠要用两个反斜杠表示,例如"\"表示一个反斜杠"",第一个反斜杠为转义,第二个为反斜杠本身。下面看个例子:

    Pattern pattern=Pattern.compile("\.");
    System.out.println(pattern);
    //输出 /.

    这个要验证的是点.本身

    所以要验证一个反斜杠,需要四个反斜杠\\

    Pattern pattern=Pattern.compile("\\");
    System.out.println(pattern);
    
    // 输出 \

    验证一个反斜杠字符:

    Pattern pattern=Pattern.compile("[\\]");
    System.out.println(pattern);//输出[\] 表示要验证反斜杠本身
    String a="\";
    System.out.println("a="+a);//输出a=,表示 一个反斜杠字符
    Matcher matcher=pattern.matcher(a);
    System.err.println(matcher.matches());//输出 true,验证通过

    验证任意次数1

    Pattern pattern=Pattern.compile("^1*$");//验证任意次数1
    System.out.println(pattern);//输出^[-+*/]$
    String a="1111";
    System.out.println("a="+a);//输出a=1111
    Matcher matcher=pattern.matcher(a);
    System.err.println(matcher.matches());//输出 true,验证通过验证通过            

    验证"1*"字符串

    Pattern pattern=Pattern.compile("^1\*$");//验证任意次数1
    System.out.println(pattern);//输出^1*$
    String a="1*";
    System.out.println("a="+a);//输出a=1*
    Matcher matcher=pattern.matcher(a);
    System.err.println(matcher.matches());//输出 true,验证通过

    验证+-*/

    减号放第一位,不需要转义

    Pattern pattern=Pattern.compile("^[-+*/]$");//
    System.out.println(pattern);//输出^[-+*/]$
    String a="/";
    System.out.println("a="+a);//输出a=-,表示 一减号字符
    Matcher matcher=pattern.matcher(a);
    System.err.println(matcher.matches());//输出 true,验证通过

    减号不在第一位,需要转义,原因:正则表达式中[0-9] 表示0到9任意字符

    Pattern pattern=Pattern.compile("^[+\-*/]$");//
    System.out.println(pattern);//输出^[+-*/]$
    String a="-";
    System.out.println("a="+a);//输出a=-,表示 一减号字符
    Matcher matcher=pattern.matcher(a);
    System.err.println(matcher.matches());//输出 true,验证通过

    2. js 中的正则转义

    直接用一个反斜杠即可完成转义

    var str=/^\$/;  //验证一个反斜杠
    var testStr='\';
    console.log(str.test(testStr))//输出true

    验证+-*/

    var str=/^[+-*/]$/;  //验证+-*/
    var testStr='-';
    console.log(str.test(testStr))//输出true
  • 相关阅读:
    python 3+djanjo 2.0.7简单学习(三)--Django 管理页面
    python 3+djanjo 2.0.7简单学习(二)--创建数据库和模型
    lucene3.6.0 经典案例 入门教程
    Android——自定义Actionbar左侧覆盖不全的解决方案
    Android——ViewPager多页面滑动切换以及动画效果
    Android——LayoutInflater详解
    java.sql.SQLException:指定了无效的 Oracle URL
    核函数方法简介
    IEEE论文格式要求
    oracle使用DataBase Configuration Assistant创建、删除数据库
  • 原文地址:https://www.cnblogs.com/jackstrong/p/5980291.html
Copyright © 2011-2022 走看看