正则需要转义的字符

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

举个栗子:

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

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


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



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

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

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...