【问题标题】:Java regular expression interpretationJava正则表达式解释
【发布时间】:2012-05-27 12:44:06
【问题描述】:
import java.util.regex.*;

public class Splitter {
    public static void main(String[] args) throws Exception {
        Pattern p = Pattern.compile("[,\\s]+");
        String[] results = p.split("one,two, three   four ,  five");
        for (String result : results) {
            System.out.println(result);
        }
    }
}

分隔符可以是逗号或空格,也可以是任意数量的组合。我认为它的正则表达式应该是[,\s]+。为什么示例中有一个额外的反斜杠?

【问题讨论】:

  • 请不要张贴文字截图。改为发布文本。
  • 你可以使用 StringTokenizer。
  • 这是什么问题?你想阻止可能的助手剪切和粘贴你的代码来测试/改进它吗?
  • @Vipar StringTokenizer 实际上已被弃用以支持拆分。

标签: java regex


【解决方案1】:

额外的\ 用于转义下一个反斜杠。在任何 Java 字符串中,"\\" 表示 "\"

这是因为'\' 是一个特殊字符。你一定见过"\n" 以前的意思是换行,对吧?因此,要将文字 \ 放入字符串中,请使用 "\\"

例如尝试System.out.println("Here\'s a backslash : \\")

这将打印: Here's a backslash : \

【讨论】:

  • 为什么输出中的第一个反斜杠消失了?
  • @TerryLiYifeng \' 表示字符'。字符' 不需要在字符串中转义,但\' 表示'。试试看。
猜你喜欢
  • 2022-07-29
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多