【问题标题】:Java Regex all non word characters except whitespaceJava 正则表达式除空格外的所有非单词字符
【发布时间】:2015-08-03 01:23:42
【问题描述】:

这可能以前被问过,但我想在每个非单词字符处拆分一个字符串,除了 java 中的空格。我一般没有使用正则表达式的经验,wiki 也没有真正的帮助。

我已经尝试过:"[\\W][^\\s]",但这没有帮助。

编辑:如何从文件中读取字符串

StringBuilder sb = new StringBuilder();

        Scanner sc = new Scanner(getResources().openRawResource(R.raw.answers));

        try
        {
            while (sc.hasNext())
            {
                sb.append(sc.next());
            }
        } finally
        {
            sc.close();
        }

【问题讨论】:

  • 有人问过。 [^\\w\\s]+.

标签: java regex


【解决方案1】:

您可以使用此正则表达式进行拆分:

String[] tok = input.split( "[\\W&&\\S]+" );

这将拆分任何也是非空格字符的非单词,因此留出空格字符进行拆分。

检查Java Pattern reference中的字符类

【讨论】:

  • 不幸的是,这个正则表达式确实删除了空格字符
  • 我的错误,看起来,在从文件中读取文本时,空间被切断了。
  • 谢谢,我已经在我的问题中添加了代码。附:这些文件只有 2 行长,所以性能并不重要
  • 您可以使用Files.readAllBytes将完整文件读入字节数组,然后将字节数组转换为字符串。
  • java 6 有替代解决方案吗?我正在使用不支持 java 7 的 Android Api 15
猜你喜欢
  • 1970-01-01
  • 2017-11-15
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多