软件构造总结2-正则表达式的使用
复习软构的时候,学习java中的正则表达式的时候感觉没怎么看懂,尤其是把元符号转换成普通符号的过程不是很懂,还有为什么对于元符号‘\d’直接用会报错,要改成‘\\d’来使用呢,在字符串里出现单个的‘\’也会报错,要改成‘\\’才能编译,对于转义的这个过程感觉很晕,所以我阅读了一些其他的资料,把这些问题弄明白,并且对这部分内容做一个总结。
一、正则表达式的简介
java里的正则表达式表示是的一组字符串的集合,有点类似形式语言里的正则表达式,可以用来搜集,编辑和处理文本,正则表达式并不仅限于java这一种语言,但是不同的语言之间会有细微的差别,java中主要使用java.util.regex 包里的三个类来定义正则表达式并且匹配字符串,1.Pattern类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,必须首先调用其静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。2.Matcher:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。我们需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。3.PatternSyntaxException类:PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
二、正则表达式的语法
在总结语法之前,先解释‘\’的含义是什么,在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的字符反斜杠,请不要给它任何特殊的意义。在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义,相当于一个元符号反斜杠。所以,在其他的语言中(如 Perl),一个反斜杠 \ 就足以具有转义的作用,而在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。也可以简单的理解在 Java 的正则表达式中,两个 \\ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \\d,而表示一个普通的反斜杠是 \\\\。这个问题搞明白,就可以很好的解决我们之前的问题了。语法部分我把重要的内容进行截图展示如下:



三、Matcher中的方法
Matcher类中有很多功能很强大的方法,在这里列举几个常用的方法。

四、最后的总结
经过这次博客,我彻底把java中的这些正则表达式的内容搞懂了,感觉很开心,就去做了一下去年的软构真题,发现一下就做出来了,对于这样的串Jia(-1)Yi(0)Bing(1),正则表达式为([A-Z][a-z]*//((-1|0|1)//))*,你也可以尝试一下,希望我的分享能使你对java中的正则表达式的内容有更深入的理解。
posted on 2022-06-12 22:19 renjie_master 阅读(49) 评论(0) 收藏 举报
浙公网安备 33010602011771号