软件构造复习——关于Java中的正则表达式

写在前面:

               写这篇博客是因为自己在复习“软件构造”这门课时,发现对正则表达式的相关知识掌握不足。所以写下该博,以便复习并巩固相关知识。如发现错误,请您指正,我将不胜感激。

               PS:本文关于正则表达式的知识深度是基于“软件构造”的要求。

正则表达式:

          前言:

                    正则表达式定义了字符串的模式。

                    正则表达式可以用来搜索、编辑或处理文本。

                    正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

          特点:

                    1. 灵活性、逻辑性和功能性非常的强;

                    2. 可以迅速地用极简单的方式达到字符串的复杂控制。

                    3. 对于刚接触的人来说,比较晦涩难懂。

一、常见的

     

1.     \    将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,"n"匹配字符"n"。"\n"匹配换行符。序列"\\\\"匹配"\\","\\("匹配"("。

2.    ^    匹配输入字符串开始的位置。

3.    $   匹配输入字符串结尾的位置。

4.    *   零次或多次匹配前面的字符或子表达式。

5.    +   一次或多次匹配前面的字符或子表达式。

6.    ?   零次或一次匹配前面的字符或子表达式。

7.   {n}   n 是非负整数。正好匹配 n 次。

8.   {n,}   n 是非负整数。至少匹配 n 次。

9.  {n,m}   Mn 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。注意:不能将空格插入逗号和数字之间。

10.   x|y   匹配 xy

11.  [xyz]   字符集。匹配包含的任一字符。

12. [^xyz]  反向字符集。匹配未包含的任何字符。

13.  [a-z]   字符范围。匹配指定范围内的任何字符。

14. [^a-z]   反向范围字符。匹配不在指定的范围内的任何字符。

15.    \d   数字字符匹配。

………………

………………(还有很多,但这些已足够)

二、应用点(针对课程)

1. 给定的字符串是否符合正则表达式的过滤逻辑(即"匹配");

2. 通过正则表达式,从字符串中获取想要的特定部分。

三、一些简单地例子(表达式)

1.匹配网址:    [a-zA-z]+://[^\s]*

2.QQ号(至少5位,不以0开头):    [1-9][0-9]{4,}

3.((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})

4.邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

写在后面:

          这些是我复习时所涉及到的一些知识(针对于考试,并未深入),感谢大家的指正!

猜你喜欢

转载自www.cnblogs.com/hit1160300317/p/9154723.html