String str = "^2^3da42b3中文sae34科e技b2报2`~!@#$%^*()_+-=[]{};':\",./?\\93飞";
创新互联建站网络公司拥有10多年的成都网站开发建设经验,超过千家客户的共同信赖。提供网站制作、网站设计、网站开发、网站定制、外链、建网站、网站搭建、响应式网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
str = str.replaceAll("[^0-9\\u4e00-\\u9fa5]", "");
System.out.println(str);
相似网页可以用正则表达式来截取
不同网站的设计,对正文部分没有一个统一的规则。。。
只能找规律,然后做一个类似通解的方法,但是误差无法避免了。。
大概思路如下:
可以尝试着做一个对比的方法,找出某个标签内的文字和标签的比例最大
文字最多,标签最少的 一般来说是正文
具体实现:
得到网页内容,把网页内容分析成一个树(按照每个标签为一个节点),树的内容包含子节点数和该树一下的文字内容数量。
大概的对节点进行对比分析,得到节点最少,文字最多的节点。 这个就是那个正文节点了。
以上内容只适合博客、文章、新闻类的网站。搜索引擎网站等 很多标签穿插其间的无法适用。
String regex="([\u4e00-\u9fa5]+)";
String str="132更新至456";
Matcher matcher = Pattern点抗 pile(regex).matcher(str);
if(matcher.find()){
System.out.println(matcher.group(0));
}
【实例描述】
字符串中可以包含数字,字母、汉字或者其他字符。使用Character类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Character类的isLetter()方法可以判断字符中的某个字符是否为字母。实例中将介绍一种方法用来判断字符串中的某个字符是否为汉字,通过此方法可以计算字符串中汉字的数量。实例的运行效果如图4.24所示。
【实现过程】
在Eclipse中新建项目ChineseCharacter,并在其中创建一个ChineseCharacter.java文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的字符串。我们在程序中使用matches()方法来统计该字符串中汉字的个数。核心代码如下所示:
protectedvoiddo_button_actionPerformed(ActionEvente){Stringtext=chineseArea.getText();//获取用户输入intamount=0;//创建汉字数量计数器for(inti=0;itext.length();i++){//遍历字符串每一个字符//使用正则表达式判断字符是否属于汉字编码booleanmatches=Pattern.matches("^[\u4E00-\u9FA5]{0,}$",""+text.charAt(i));if(matches){//如果是汉字amount++;//累加计数器}}umField.setText(amount+"");//在文本框显示汉字数量}
【代码解析】
本实例的关键点在于正则表达式的使用。Java提供了Pattern用于正则表达式的编译表示形式,该类提供的静态方法matches()可以执行正则表达式的匹配。该方法编译给定正则表达式并尝试给定输入与其匹配。如果要匹配的字符序列与正则表达式匹配则返回true,否则返回false。其声明语法如下:
publicstaticbooleanmatches(Stringregex,CharSequenceinput);【知识扩展】
使用正则表达式可以方便地进行字符串操作,正则表达式经常被用来验证用户输入的信息,如可以判断用户输入的格式是否正确。本实例中使用正则表达式来判断用户输入的字符串是否为汉字,如果为汉字则计数器加1,最后得到字符串中所有汉字的数量。