在从网页提取一些HTML,我有一个包含文本,在一个未知的或不匹配的空白字符结束的一些元素(即不匹配“\\ S”):不明空白字符在Java中
<span>Monday </span>
在java中,要检查这个人物是什么,我做的:
String s = getTheSpanContent();
char c = s.charAt(s.length() -1);
int i = (int) c;
和i的值是:160
任何人都知道这是什么吗?我怎么能匹配它?
感谢
在从网页提取一些HTML,我有一个包含文本,在一个未知的或不匹配的空白字符结束的一些元素(即不匹配“\\ S”):不明空白字符在Java中
<span>Monday </span>
在java中,要检查这个人物是什么,我做的:
String s = getTheSpanContent();
char c = s.charAt(s.length() -1);
int i = (int) c;
和i的值是:160
任何人都知道这是什么吗?我怎么能匹配它?
感谢
这是一个non-breaking space。根据Pattern
Javadocs,\\s
匹配[ \t\n\x0B\f\r]
,所以如果你想匹配它,你必须明确地将\xA0
添加到你的正则表达式中。
好的,谢谢 - 这与html源代码有关。下面的乔尔的解决方案也适用。 – 2009-11-09 17:57:18
所以我的正则表达式匹配所有空白公司。非破坏是:“[\\ s \\ xA0] +” - 似乎正常工作。欢呼声。 – 2009-11-09 18:07:33
尝试使用此匹配空白
Character.isSpaceChar(c) || c <= ' ';
我做了这个电子表格一次性向您展示一些在Java中使用空格的不同定义。这非常迷人(如果你像我一样奇怪)。
http://spreadsheets.google.com/pub?key=pd8dAQyHbdewRsnE5x5GzKQ
顺便说一句,番石榴的CharMatcher.WHITESPACE跟踪最新的Unicode标准5.x中,因而往往比JDK方法更好的选择。
匹配它如何?你需要正则表达式还是要使用另一种方法。另外,你想通过匹配来完成什么?我们可以通过更多信息给出更好的答案。 – 2009-11-09 17:54:49