-3

可能重复:
DOT 的正则表达式

假设我有一个字符串:

String domain =  "www.example.com";

为了提取单词“example”,我在 java 中使用 split 函数

String[] keys = domain.split(".");
String result = keys[1];

显然这是错误的,因为“。” 是一个错误的正则表达式,因为它匹配任何字符。

什么是专门匹配字符“.”的转义序列?

虽然这个问题似乎微不足道,但我似乎找不到任何快速参考或以前的答案。谢谢。

4

6 回答 6

7

通过如下方式转义它

\\.
于 2012-06-12T07:55:19.983 回答
4

使用\\.. 你需要逃避它。

于 2012-06-12T07:55:25.867 回答
2

.你可以通过在它前面加上前缀来逃避\\。因此,使用\\.原因是文字字符串\\是单个反斜杠。在正则表达式中,反斜杠也是转义字符。正则表达式\\匹配单个反斜杠。

于 2012-06-12T07:56:30.240 回答
2

您可以使用 Pattern.quote() 获取任何文字字符串的正则表达式。

Pattern.quote(".") 计算结果为 "\\."

在这种情况下,使用 \\.

于 2012-06-12T08:06:16.703 回答
0

您可以通过使用或使用方括号来转义.字符。\\.[.]

因此您的代码变为:

String[] keys = domain.split("\\."); // or domain.split("[.]");
String result = keys[1];
于 2012-06-12T08:05:14.207 回答
0

或者您可以创建一个包含 的类dot,而无需转义:

[.]
于 2012-06-12T08:09:42.363 回答