嗨,我希望有人可以幫助我與這個正則表達式。正則表達式來獲取元關鍵字
我想在百通符合以下一次從網頁中提取meta關鍵字:
.match(/(<meta name=[\"|\']keywords([^\/>]*))/ig);
任何想法都會受到歡迎
嗨,我希望有人可以幫助我與這個正則表達式。正則表達式來獲取元關鍵字
我想在百通符合以下一次從網頁中提取meta關鍵字:
.match(/(<meta name=[\"|\']keywords([^\/>]*))/ig);
任何想法都會受到歡迎
爲什麼你不能使用DOM解析器,然後就提取所有meta元素並遍歷並做你想做的任何事情?
我沒有具體的答案,但這對您有幫助嗎?這是我使用TextPad的查找和替換。
^<meta[^"]+"\([^"]*\)"[^"]*"\([^"]*\)"*.*
FIND:
^[^"]+"\([^"]*\)"[^"]*"\([^"]*\)"*.*
REPLACE:
<\1>\2</\1>
CHANGES:
<TITLE>Q10022</TITLE>
<META HTTP-EQUIV="CONTENT-Type" CONTENT="text/html; charset=iso-8859-1" />
TO:
<TITLE>Q10022</TITLE>
<CONTENT-Type>text/html; charset=iso-8859-1</CONTENT-Type>
<meta name="keywords" content="(.+)" />
我可能是錯的,但如果它是不貪婪,應該是它。只是逃避特殊字符。
這是未經測試,但使用jQuery不能你只是做:
$('meta').each(function() { // insert code here to put the attributes in an array or whatever });
,然後裏面有兩種存儲數據,做一些AJAX調用或基於每個meta標籤的數據一些動作。
<meta(?=[^>]*name\s*=\s*("|')\s*keywords\s*\1)\s+[^>]*content\s*=\s*("|')([^>\2]*?)\2
會讓您檢索的元關鍵字作爲第三組(\ 3)更健壯的方式的內容:
- 內容和名稱可以在兩者之間來表達「或」
- attributs'爲了不固定
- 其他attributs可以存在
只是要小心,以正確地逃脫「或‘正則表達式中的字符串,以符合自己喜歡的語言要求(在Python,你最好使用三聯’) 。
希望它可以幫助!
我沒有使用dom對象的經驗......我將如何從中提取元關鍵字? – 2009-09-13 22:25:32
+1。編寫自己的正則表達式很容易出錯,並且可能很難調試。沒有理由在有空閒解析器的時候這樣做。 – Fragsworth 2009-09-13 22:25:40
首先找到一個DOM解析器,然後加載文檔,getElementsByTagName方法就是你要找的,你可以在遍歷meta元素的nodeList後使用getAttribute。 – 2009-09-13 22:28:12