语法
正则表达式是一串字符,它描述了一个文本模式,利用它可以方便地处理文本,包括文本的查找、替换、验证、切分等。正则表达式中的字符有两类:一类是普通字符,就是匹配字符本身;另一类是元字符,这些字符有特殊含义,这些元字符及其特殊含义构成了正则表达式的语法。
正则表达式有一个比较长的历史,各种与文本处理有关的工具、编辑器和系统都支持正则表达式,大部分编程语言也都支持正则表达式。虽然都叫正则表达式,但由于历史原因,不同语言、系统和工具的语法不太一样,本书主要针对Java语言,其他语言可能有所差别。
下面,我们就来简要介绍正则表达式的语法,我们先分为以下部分分别介绍:
·单个字符;
·字符组;
·量词;
·分组;
·特殊边界匹配;
·环视边界匹配。
最后针对转义、匹配模式和各种语法进行总结。
1.单个字符
大部分的单个字符就是用字符本身表示的,比如字符'0'、'3'、'a'、'马'等,但有一些单个字符使用多个字符表示,
这些字符都以斜杠'\'开头,比如:
1)特殊字符,
比如tab字符'\t'、换行符'\n'、回车符'\r'等。
2)八进制表示的字符,
以\0开头,后跟1~3位数字,比如\0141,对应的是ASCII编码为97的字符,即字符'a'。
3)十六进制表示的字符,
以\x开头,后跟两位字符,比如\x6A,对应的是ASCII编码为106的字符,即字符'j'。
4)Unicode编号表示的字符,
以\u开头,后跟4位字符,比如\u9A6C,表示的是中文字符'马',这只能表示编号在0xFFFF以下的字符,如果超出0XFFFF,使用\x{...}形式,比如\x{1f48e}。
5)斜杠\本身,
斜杠\是一个元字符,如果要匹配它自身,使用两个斜杠表示,即'\\'。
6)元字符本身,
除了'\',正则表达式中还有很多元字符,比如.、*、?、+等,要匹配这些元字符自身,需要在前面加转义字符'\',比如'\.'。
2.字符组
字符组有多种,包括任意字符、多个指定字符之一、字符区间、排除型字符组、预定义的字符组等,下面具体介绍。
点号字符'.'是一个元字符,默认模式下,它匹配除了换行符以外的任意字符 ,比如正则表达式:a.f
既匹配字符串"abf",也匹配"acf"。可以指定另外一种匹配模式,一般称为单行匹配模式
或者点号匹配模式 ,在此模式下,'.'匹配任意字符,包括换行符。可以有两种方式指定匹配模式:一种是在正则表达式中,以(?s)开头,s表示single line,即单行匹配模式。
比如:
(?s)a.f
另外一种是在程序中指定,在Java中,对应的模式常量是Pattern.DOTALL
了解更多Java相关知识,点击下方链接和小编一起学习吧!!!