文档

Java™ 教程
隐藏目录
字符串字面值
路径:基本Java类
课程:正则表达式

字符串字面值

这个API支持的最基本的模式匹配形式是字符串文字的匹配。例如,如果正则表达式是foo,输入字符串是foo,匹配将成功,因为字符串是相同的。使用测试工具尝试一下:

 
输入您的正则表达式:foo
输入要搜索的字符串:foo
我找到了文本foo,起始索引为0,结束索引为3。

这个匹配是成功的。注意,虽然输入字符串的长度为3个字符,但起始索引为0,结束索引为3。按照惯例,范围包括起始索引,不包括结束索引,如下图所示:

字符串文字foo,带有编号的单元格和索引值。

字符串文字foo,带有编号的单元格和索引值。

字符串中的每个字符都位于自己的单元格中,索引位置指向每个单元格之间。字符串"foo"从索引0开始,到索引3结束,即使字符本身只占据单元格0、1和2。

在后续的匹配中,您会注意到一些重叠;下一个匹配的起始索引与上一个匹配的结束索引相同:

 
输入您的正则表达式:foo
输入要搜索的字符串:foofoofoo
我找到了文本foo,起始索引为0,结束索引为3。
我找到了文本foo,起始索引为3,结束索引为6。
我找到了文本foo,起始索引为6,结束索引为9。

元字符

这个API还支持一些特殊字符,它们影响模式的匹配方式。将正则表达式更改为cat.,将输入字符串更改为cats。输出将如下所示:

输入您的正则表达式:cat.
输入要搜索的字符串:cats
我找到了文本cats,起始索引为0,结束索引为4。

尽管输入字符串中没有出现点号".",但匹配仍然成功。这是因为点号是一个元字符,即由匹配器解释的具有特殊意义的字符。元字符"."表示"任何字符",这就是为什么在这个例子中匹配成功的原因。

这个API支持的元字符有:<([{\^-=$!|]})?*+.>


注意: 在某些情况下,上述列出的特殊字符将不会被视为元字符。当您学习更多关于正则表达式的构建方式时,您会遇到这种情况。但是,您可以使用此列表来检查特定字符是否会被视为元字符。例如,字符@#从不具有特殊含义。

  • 在元字符之前加上反斜杠,或
  • 将其包含在\Q(开始引用)和\E(结束引用)之间。

使用这种技术时,\Q\E可以放置在表达式的任何位置,只要\Q在前面。


上一页: 测试工具
下一页: 字符类