计算机程序的思维逻辑 (88) - 正则表达式 (上)
Posted 老马说编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机程序的思维逻辑 (88) - 正则表达式 (上)相关的知识,希望对你有一定的参考价值。
本系列文章经补充和完善,已修订整理成书《Java编程的逻辑》,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html
上节我们提到了正则表达式,它提升了文本处理的表达能力,本节就来讨论正则表达式,它是什么?有什么用?各种特殊字符都是什么含义?如何用Java借助正则表达式处理文本?都有哪些常用正则表达式?由于内容较多,我们分为三节进行探讨,本节先简要探讨正则表达式的语法。
正则表达式是一串字符,它描述了一个文本模式,利用它可以方便的处理文本,包括文本的查找、替换、验证、切分等。
正则表达式中的字符有两类,一类是普通字符,就是匹配字符本身,另一类是元字符,这些字符有特殊含义,这些元字符及其特殊含义就构成了正则表达式的语法。
正则表达式有一个比较长的历史,各种与文本处理有关的工具、编辑器和系统都支持正则表达式,大部分编程语言也都支持正则表达式。虽然都叫正则表达式,但由于历史原因,不同语言、系统和工具的语法不太一样,本文主要针对Java语言,其他语言可能有所差别。
下面,我们就来简要介绍正则表达式的语法,我们先分为以下部分分别介绍:
- 单个字符
- 字符组
- 量词
- 分组
- 特殊边界匹配
- 环视边界匹配
最后针对转义、匹配模式和各种语法进行总结。
单个字符
大部分的单个字符就是用字符本身表示的,比如字符\'0\',\'3\',\'a\',\'马\'等,但有一些单个字符使用多个字符表示,这些字符都以斜杠\'\\\'开头,比如:
- 特殊字符,比如tab字符\'\\t\',换行符\'\\n\',回车符\'\\r\'等;
- 八进制表示的字符,以\\0开头,后跟1到3位数字,比如\\0141,对应的是ASCII编码为97的字符,即字符\'a\';
- 十六进制表示的字符,以\\x开头,后跟两位字符,比如\\x6A,对应的是ASCII编码为106的字符,即字符\'j\';
- Unicode编号表示的字符,以\\u开头,后跟四位字符,比如\\u9A6C,表示的是中文字符\'马\',这只能表示编号在0xFFFF以下的字符,如果超出0XFFFF,使用\\x{...}形式,比如对于字符\'
以上是关于计算机程序的思维逻辑 (88) - 正则表达式 (上)的主要内容,如果未能解决你的问题,请参考以下文章