在从网页中提取一些html时,我有一些元素包含以未知或不匹配的空格字符结尾的文本(即与“\\ s”不匹配):
<span>Monday </span>
在java中,为了检查这个角色是什么,我正在做:
String s = getTheSpanContent();
char c = s.charAt(s.length() -1);
int i = (int) c;
,i的值为:160
任何人都知道这是什么?我怎么能匹配呢?
由于
答案 0 :(得分:22)
这是一个non-breaking space。根据{{3}},\\s
匹配[ \t\n\x0B\f\r]
,因此如果您想匹配它,则必须明确地将\xA0
添加到正则表达式。
答案 1 :(得分:4)
那是\u00A0
,也称为非破坏空间。如果您了解HTML,您就会明白它与
所代表的空间相同。显然,有人使用它而不是普通的空间。
答案 2 :(得分:4)
尝试使用它来匹配空格
Character.isSpaceChar(c) || c <= ' ';
答案 3 :(得分:4)
我制作了一次这个电子表格,向您展示了Java中使用的空格的一些不同定义。它非常迷人(如果你像我一样奇怪)。
http://spreadsheets.google.com/pub?key=pd8dAQyHbdewRsnE5x5GzKQ
顺便提一下,Guava的CharMatcher.WHITESPACE跟踪最新的Unicode 5.x标准,因此通常是比JDK方法更好的选择。