javahtml正則表達式
A. java正則表達式獲取任意兩個html標簽中的內容
import java.util.regex.*;
public class RegexExample {
public static void main(String []args) {
String content=獲取的網頁內容;
Pattern p=Pattern.compile("<div class=\"fliter_px\">([\\s\\S]+?)<div class=\"search_page\">");
Matcher m=p.matcher(content);
if(m.find()){
System.out.println(m.group(1));
}
}
}
B. 如何使用java的正則表達式提取html標簽
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Stringhtml="<title>ABCD</title>gsdggas<title></title>jkll<title>005</title>";
//簡單示例,相當於Stringhtml=getHtml(StringurlString);
ListresultList=getContext(html);
for(Iteratoriterator=resultList.iterator();iterator.hasNext();){
Stringcontext=(String)iterator.next();
System.out.println(context);
}
}
/**
*提取"<title>XXXX</title>"中的文字XXXX
*@paramhtml要解析的html文檔內容
*@return解析結果,可以多次匹配,每次匹配的結果按文檔中出現的先後順序添加進結果List
*/
publicstaticListgetContext(Stringhtml){
ListresultList=newArrayList();
Patternp=Pattern.compile("<title>([^</title>]*)");//匹配<title>開頭,</title>結尾的文檔
Matcherm=p.matcher(html);//開始編譯
while(m.find()){
resultList.add(m.group(1));//獲取被匹配的部分
}
returnresultList;
}
}
C. java 正則表達式 匹配html標簽段
<head>
<script language="javascript">
var G=document.getElementById;
function window_load(){
var strHTML = ""; // document.body.innerHTML;
strHTML += "<html>";
strHTML += " <head>";
strHTML += " </head>";
strHTML += " <body>";
strHTML += " <font color='red'>test1</font><br />";
strHTML += " <font size='18'>test2</font><br />";
strHTML += " <font >test3</font><br />";
strHTML += " <font></font>";
strHTML += " </body>";
strHTML += "</html>";
var reg = /<(font)\s*[^<>]*>[^<>]*<\/\1\s*>/ig;
var aryResult = strHTML.match(reg);
alert("用match方法匹配 ,結果:\n\n" + aryResult.join("\n"));
}
</script>
</head>
<body onload="window_load();"> \
<!--
<font color='red'>test1</font><br />
<font size='18'>test2</font><br />
<font >test3</font><br />
<font></font>
-->
</body>
</html>
D. java正則表達式替換html中除標簽外的關鍵字內容
\b{keywords}\b(?=[^<>]*<)
把上面{keywords}替換成你的關鍵字,注意把{}也替換掉,我是為了讓你看明白換哪才加的{}。
然後你找到匹配上面的正則的地方後替換成你想替換的字元串就好了,全部替換記得用全局修飾符
E. java正則表達式是什麼
java正則表達式是為\d+.{0,1}d*。需要轉義反斜杠,所以有兩個反斜杠。這個正則表達式表示整數或者小數\d+表示1個或多個0到9的數字,是整數部分至少是一位整數的整數部分0,1表示0個或1個小數點,因為點在正則表達式中表示任意字元,所以這里需要用轉義符。
使它變回原來的小數點的意思,0,1表示0或1個,也就是可以有或者沒有小數點\d*表示0個或多個0到9的數字,是小數部分,0個時表示這個數沒有小數部分,只有整數部分。
java的概念
使用單個字元串來描述。匹配一系列符合某個語句規則的字元串,定義了字元串的模式。正則表達式主要用於字元串中,為方便字元串操作,文本的復雜處理。
字元串的操作主要有四種,匹配、切割、替換、獲取。匹配一些字元串,根據題目要求。
F. java 如何利用正則表達式只保留html裡面的<p></p>標簽裡面的內容
正則表達式:<p.*?>(.*?)</p>
group(1)為正文內容。
輸出時加上\n就行了
import java.util.regex.*;
public class Test{
public static void main(String[] args){
String str="<p style=\"font-size:1.3em;font-weight:bold\">No page with that title exists.</p> ";
String regex="<p.*?>(.*?)</p> ";
Pattern p =Pattern.compile(regex);
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
}
G. java正則表達式過濾html p標簽
用JavaScript方法如下,JAVA語言類似:
'你的HTML文本'.replace(/.+>(.+)<.+/,'$1')
H. java中的正則表達式與HTML正則表達式有什麼區別
語法沒有區別,更正下不是html是javascript
唯一的區別在於 java中\轉義要使用兩次
例如:只能是一個數字
java中是: "\\d"
javascript中是:/\d/
I. java正則表達式去除html標簽保留指定標簽
String reg = "<\\/?html[^>]*>";
String html = "";
html.replaceAll(reg,"");
J. 如何使用java的正則表達式提取html標簽
//我隨便寫了一個工具類,getRegexData就是那個方法,你可以根據你的需求稍加改動即可因為我使用的
//URL而不是HttpClient,所以數據是全部獲取過來了,你自己改改吧!不懂再問我
packagecom.wdy.util;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URL;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*工具類
*@authorWDY
*
*/
publicclassTool{
publicstaticvoidmain(String[]args){
System.out.println(getRegexData("<img[]*src.*?jpg"","<imgsrc="img1.jpg"><imgsrc="img2.jpg""));
try{
URLurl=newURL("http://www..com");
StringstringData=getStringFromInputStream(url.openStream());
System.out.println(stringData+"----------------------------------------");
System.out.println();
System.out.println(getRegexData("http://.{6,70}?(png|jpg)",stringData));
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*給一個正則表達式,和數據,將正則匹配到的數據全數取出來
*
*@paramregex
*@paramdata
*@returnList<String>
*/
publicstaticList<String>getRegexData(Stringregex,Stringdata){
Patternpattern=Pattern.compile(regex);
Matchermatcher=pattern.matcher(data);
List<String>resultList=newArrayList<String>();
intindex=0;//搜索的位置
Stringtemp="";
/*從指定位置查找,如果找到了,就繼續執行下面的代碼*/
while(matcher.find(index)){
temp=matcher.group();//將匹配到的數據取出來放到集合中去
resultList.add(temp);
index+=temp.length();//將查找位置放到此時找到的數據後面
System.out.println(index);
}
returnresultList;
}
/**
*將輸入流裝成字元串
*@paramis
*@return
*/
(InputStreamis)throwsIOException{
StringBuildersbl=newStringBuilder();
byte[]buff=newbyte[1024*8];
intlen;
inti=0;
while((len=is.read(buff))!=-1){
sbl.append(newString(buff,0,len,"utf-8"));
System.out.println(i++);
}
System.out.println(sbl.length());
returnsbl.toString();
}
}