微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则需要转义的字符

(){}[]^$|?*+.\ 这些元字符, 都需要转义,其他的都不要转义了,如果把不需要转义的转义了,在js中不会有啥错,只是在java中,把不该转的转了 ,就会,报错。编译器是通不过的。。

举个栗子:

例如有这么个字符串android:id="@+id/abc" 需要提取出其中的abc,那么针对通用的提取,正则表达式应该这样写: (?<=android:id="@\+id/)(.)+(?=")

放到java中运行,那么需要把所有的\变成\\,然后就成这样了 (?<=android:id="@\\+id/)(.)+(?=") ,这样放进去是有问题的,结果是这样


so,因为java中string中的不能含有"",必须转义。那么把"变成\" 就可以了



另外还发现一个问题,在正则中对于/,可以转义,也可以不转义,java中是不会报错的。所以,上面的正则也可以写成:

(?<=android:id=\"@\\+id\\/)(.)+(?=\")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐