说我有一个字符串:
String domain = "www.example.com";
要提取单词“example”,我在java中使用split函数
String[] keys = domain.split(".");
String result = keys[1];
显然这是错误的,因为“。”是一个错误的正则表达式,因为它匹配任何字符。
什么是特定匹配字符“。”的转义序列?
虽然这个问题确实显得微不足道,但我似乎无法找到任何快速参考或以前的答案。谢谢。
答案 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
的类,而不必转义:
[.]