java反斜杠转义_java 和 JS(javaScript)中的反斜杠正则转义

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

比方说

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

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

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

等。

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

在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值