正则表达式:都哪些字符需要使用转义呢?*这个星号符号需要进行转义吗? 求解

正则表达式:都哪些字符需要使用转义呢?*这个星号符号需要进行转义吗? 求解,第1张

正则表达式中是表示能连续匹配前面的0个或多个,如abc能匹配abccccccccccccba中的abcccccccccccc。所以要想表示本身这个字符时,就需要转义了。比如要比配abcde这个字符串中的abc,那么正则表达式就要写成ab\c。在常见的编程语言中的该正则表达式字符串定义为var regstr = "abc\\c" (第一个在字符串中\转义后一个\,此时字符串字面才为ab\c)。
和类似,在正则表达式中欲表示有特殊意义的字符时都需要转义,比如+,,],[,(,)等等,详细内容参看>需要转义的字符有:\ ^ & [ ] { } 等
注意的是如果在[]字符集合里,很多字符都不需要转义
建议你看一下这篇基础教程:
>如果你想查找元字符本身的话,比如你查找,或者,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\和\。当然,要查找\本身,你也得用\\
例如:deerchao\net匹配deerchaonet,C:\\Windows匹配C:\Windows。
javascript中/已经使用,/需要转义
vbscript中"已经使用,"需要转义

有如下正则表达式:

强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间): ^(=\d)(=[a-z])(=[A-Z])[a-zA-Z0-9]{8,10}$

使用如上正则表达式验证的时候发现没有达到自己想要的效果,那是因为上面的 \d 会被当成转义字符来对待,XCode警告 Unknown escape sequence '\d' ,如下:

最后po如上字符串的时候发现po出来的是 ^(=d)(=[a-z])(=[A-Z])[a-zA-Z0-9]{8,10}$ ,少了 \ 正因为如此,所以正则的校验就不成功了。

解决办法,就是在 \d 前面再加个 \ ,不让他转义,如下:

这样正则的校验就正确了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10535094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存