字符串在我们平常编程当中应该是被使用最多的类之一了,那么它跟正则表达式有什么关系呢?
1. 字符串匹配
java平台正则表表达式api提供的最基础的匹配就是这种字符串的匹配,这个概念很简单说明,比如: 正则表达式是:”foo”,带匹配的字符串是”foo”, 这种情况是匹配应该是成功的。
我们可以通过实例来了解(测试代码请参见第二节):
从上面可以了解到匹配成功,请注意我们的输入字符串长度为3,匹配结果显示起始index为0, 结束的index为3,这里大家需要注意一下,这里面的范围是包含起始index,但是不包含结束index, 可以通过下面的图片了解一下:
这里面的结束index,是作为下次匹配的起始index,我们可以通过如下的实验了解:
2. 元字符(Metacharacters)
java平台也提供一些具有特殊意义的字符,从而来达到某种特殊需求的匹配,下面先通过一个例子简单了解一下:
可以看到,匹配是成功的,尽管字符”.”并没有出现在带匹配的字符串中,这里匹配成功的原因是,”.”是元字符, 它被赋予的意思是: “任何字符都可”, 这就是当前例子匹配的原因。
Java 正则API提供了很多个元字符,它们是:
\([{\^-=$!|]})?\*+\.
某些情况下,我们需要将这些元字符作为普通的字符对待,这就涉及到我们经常了解到的转义,这里有两种方式:
- 通过
\
进行转义; - 将元字符放置在
\Q
和\E
之间。
上一节: 【Java正则表达式系列】2. 简单的正则匹配示例
下一节: 【Java正则表达式系列】4. Character Classes