一、两种表达方式表达意义的区别:
1、\s代表正则表达式中的一个空白字符(可能是空格、制表符、其他空白)。
2、\\s代表字符\和字符s,因为\在正则中有特殊意义,所有需要转义,写成了\\ 。
二、表达的作用的区别:
1、\s用于匹配空白字符。
2、\\s用于匹配字符串中的\和s,两个字符。
扩展资料:
一、为什么要用\\s:
1、用\\s是因为所使用的工具\本身就具有转义的功能,比如\b表示退格符,在正则中\b(不在中括号中)表示单词边界,要将字符串\b传给正则就得首先对\转义 ,用\\表示 \, \\b表示\b
2、在这些\本身具有转义作用的工具中,要将字符串\s传给正则用要\\s
二、正则表达式:正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
三、正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
参考资料:
写成\s,表示\与s相匹配,在第一次引用该段指令时就会生效,起到\s的作用。也就是表示空白符号。
而写成\\s的时候,\会与第二个\相匹配,形成\\。其含义就是单独的一个\。这种情况,有可能是为了输出\s,而不令其转义。更常见的原因是该段字符串会被处理两次,第一次的时候将\\s处理为\s,第二次处理的时候,才执行\s的作用,即空白符号。
用\\s是因为所使用的工具\本身就具有转义的功能,比如\b表示退格符,在正则中\b(不在中括号中)表示单词边界,要将字符串\b传给正则就得首先对\转义 ,用\\表示 \, \\b表示\b
同理在这些\本身具有转义作用的工具中,要将字符串\s传给正则用要\\s
那 /(\s|^)Cname/ 和 /(\\s|^)Cname/ 这两个哪个对呢?我想做的是在Cname前不是空格就是没有的效果。
/(\s|^)Cname/ 这个对,这是直接的正则表达式,不需要考虑字符串的转义
var reg=/\\s/ 则表示匹配'\'+空格