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
  • 相关阅读:
    机器学习初篇(0.0)
    MQTT 入门介绍
    《八极拳谱》(李书文)
    Golang实战群:日志的处理机制
    【转】火山引擎 Redis 云原生实践
    【转】7000字前端性能优化总结 | 干货建议收藏
    微信小程序canvas绘制圆角边框
    【转】语义化版本 2.0.0
    Verdaccio私有 npm 服务器搭建及其配置
    【转】根据条件配置多个npm仓库
  • 原文地址:https://www.cnblogs.com/jackstrong/p/5980291.html
Copyright © 2011-2022 走看看