在正则表达式中,我们如何匹配字符“。”本身?

时间:2012-06-12 07:54:52

标签: java regex

  

可能重复:
  regular expression for DOT

说我有一个字符串:

String domain =  "www.example.com";

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

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

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

什么是特定匹配字符“。”的转义序列?

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

6 个答案:

答案 0 :(得分:7)

通过以下方式逃避

\\.

答案 1 :(得分:4)

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

答案 2 :(得分:2)

您可以通过为.添加前缀来\\。因此,使用\\. Reason是文字字符串\\是单个反斜杠。在正则表达式中,反斜杠也是转义字符。正则表达式\\匹配单个反斜杠。

答案 3 :(得分:2)

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

Pattern.quote(“。”)评估为“\\。”

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

可能会更清楚

答案 4 :(得分:0)

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

因此您的代码变为:

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

答案 5 :(得分:0)

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

[.]