我目前正在尝试为我们的应用程序添加对日语和法语编码的支持。为此,我尝试创建两个模式匹配器来检测读取文件中的仅制表符和仅空格,无论语言编码如何。
这些将用于确定文件中使用的分隔符,以便对它们进行相应的处理。
当我尝试编译空间模式时
Pattern.compile(" ", Pattern.UNICODE_CHARACTER_CLASS);
我没有看到它生成正则表达式来处理不同的 unicode 空间值。
例如类似“[\\u00A0\\u2028\\u2029\\u3000\\u00C2\\u009A\\u0041]”
编译似乎可以在“\s”字符集下正常工作,但其中包括制表符和换行符。
我应该如何在 Java 中执行此操作?
更新
所以这不起作用的部分原因是日语网络文本没有空格,即使看起来有空格。从 Web imoprt 中获取以下行:
実なので说明は不要だろう。その后1987
这里其实没有空格う。そ。只有三个字符。
解决这个问题确实是另一个问题的主题,所以我接受了卡西米尔的回答,因为它很好地处理了法国的情况。
最佳答案
您可以使用否定字符类。示例:
[^\\S \\t]
这意味着 \s
没有空格和制表符。
或者您可以使用类交集:
[\\s&&[^ \\t]]
关于Java 7 Unicode 正则表达式 仅制表符和仅空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24417394/