Java 7 Unicode正则表达式Tabsonly和Spacesonly
我目前正在尝试为我们的应用程序添加对日语和法语编码的支持。在这样做的过程中,我试图创建两个模式匹配器来检测读取文件中的制表符和空格,而不考虑语言编码
这些将用于确定文件中使用的分隔符,以便相应地进行处理
当我尝试编译一个空间模式时
Pattern.compile(" ", Pattern.UNICODE_CHARACTER_CLASS);
我没有看到它生成一个正则表达式来处理不同的unicode空间值
例如"[\\u00A0\\u2028\\u2029\\u3000\\u00C2\\u009A\\u0041]"
编译似乎可以正常使用“\s”字符集,但其中包括制表符和换行符
我应该如何在Java中实现这一点
更新
所以这不起作用的部分原因是日语网页文本没有空格,尽管看起来有空格。从web imoprt中获取以下行:
実なので説明は不要だろう。その後1987年
这里实际上没有空格う。そ. 只有三个字符
解决这个问题实际上是另一个问题的主题,因此我接受了卡西米尔的回答,因为它很好地处理了法国的案件
# 1 楼答案
如果我听你的问题,你可以用这样的东西来表示空间-
输出为
和标签
输出为
最后,对0个或更多匹配项使用
*
而不是+
。这将使用+
,因此需要1个或多个匹配项。以(^
)开始,以($
)结束# 2 楼答案
可以使用否定字符类。例如:
这意味着
\s
没有空格和制表符或者可以使用类交叉点: