软件构造复习——关于Java中的正则表达式
Posted hit1160300317
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件构造复习——关于Java中的正则表达式相关的知识,希望对你有一定的参考价值。
写在前面:
写这篇博客是因为自己在复习“软件构造”这门课时,发现对正则表达式的相关知识掌握不足。所以写下该博,以便复习并巩固相关知识。如发现错误,请您指正,我将不胜感激。
PS:本文关于正则表达式的知识深度是基于“软件构造”的要求。
正则表达式:
前言:
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
特点:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
一、常见的
1. 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,"n"匹配字符"n"。" "匹配换行符。序列"\\"匹配"\","\("匹配"("。
2. ^ 匹配输入字符串开始的位置。
3. $ 匹配输入字符串结尾的位置。
4. * 零次或多次匹配前面的字符或子表达式。
5. + 一次或多次匹配前面的字符或子表达式。
6. ? 零次或一次匹配前面的字符或子表达式。
7. {n} n 是非负整数。正好匹配 n 次。
8. {n,} n 是非负整数。至少匹配 n 次。
9. {n,m} M 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。注意:不能将空格插入逗号和数字之间。
10. x|y 匹配 x 或 y。
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_-][email protected][a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$
写在后面:
这些是我复习时所涉及到的一些知识(针对于考试,并未深入),感谢大家的指正!
以上是关于软件构造复习——关于Java中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章