Java : 使用未知字符拆分句子?

Java : Split Sentence using unknown character?

我知道,很多人问过分句题。但是 我的问题略有不同。 我在字符串数据中得到了一些未知字符(我不知道,看起来像制表符),我正在尝试将其用作拆分的分隔符。

源文本是:(*尝试select空白spaces部分,可能会看到效果)

The President   Profile of the President
Swearing in of the President
Assets of the President
Speeches    Speeches
Foreign Visits
Press Releases
Gallery Photo Gallery
Video Gallery
Rashtrapati Bhavan  Panoramic View

我在想空白的 space 部分可能是制表符。但是我错了。我尝试用标签匹配但没有效果。

然后我在记事本++中打开这个字符串,然后设置为显示所有字符。在那里我找到了这个角色。请参考下图。

在上图中,可以清楚地看到一个橙色的箭头符号("----->"),这是哪个符号?它的宽度不固定。那么我怎样才能拆分一些句子呢? 有人遇到这个问题吗?

在这种情况下,我通常会在十六进制编辑器中打开文件并检查确切的字符代码,无论它是什么。但是,如果您只想按任何未知字符拆分,可以使用 [^...] 模式。这是一个示例,如何将字符串拆分为非字母数字或 space:

的任何字符
String[] fields = inputStr.split("[^\w ]");

您可能希望将部分文本转换为 unicode 转义,以便观察代码点。

一旦您确定了哪个代码点对应于您要查找的空白字符,您就可以在 split 调用中使用它,作为模式的一部分,使用以下代码成语:\uhhhh.

引用docs

\xhh The character with hexadecimal value 0xhh

\uhhhh The character with hexadecimal value 0xhhhh

\x{h...h} The character with hexadecimal value 0xh...h (Character.MIN_CODE_POINT <= 0xh...h <= Character.MAX_CODE_POINT)

不知不觉中我得到了答案。上图中的空格或箭头是 nbsp; Html 实体。这就是为什么我无法打破这句话的原因。上面显示的输出来自 Tika 解析器,我在其中尝试点击 html url 并提取 html 页面数据。最后把它分解成句子。